<?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>212069</bug_id>
          
          <creation_ts>2020-05-19 06:03:22 -0700</creation_ts>
          <short_desc>Re-enable SharedArrayBuffer for JSC shell and Testers</short_desc>
          <delta_ts>2021-08-12 11:14:39 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=160392</see_also>
          <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 name="Sergey Rubanov">chi187</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>andre.bargull</cc>
    
    <cc>annevk</cc>
    
    <cc>anthony</cc>
    
    <cc>ashvayka</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>chi187</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hotaru</cc>
    
    <cc>jarred</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jujjyl</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>max</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>rwaldron</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zcorpan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653976</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Rubanov">chi187</who>
    <bug_when>2020-05-19 06:03:22 -0700</bug_when>
    <thetext>SharedArrayBuffer was disabled in https://bugs.webkit.org/show_bug.cgi?id=181266 due to Spectre and Meltdown vulnarabilities.

I haven&apos;t found tracking bug for re-enabling SAB again, so I created this one.

Chrome re-enabled SAB in v67 https://bugs.chromium.org/p/chromium/issues/detail?id=821270
Firefox re-enabled SAB in v78 https://bugzilla.mozilla.org/show_bug.cgi?id=1606624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679520</commentid>
    <comment_count>1</comment_count>
    <who name="Jarred Sumner">jarred</who>
    <bug_when>2020-08-11 13:05:05 -0700</bug_when>
    <thetext>As someone building a game, I would love to see Safari/WebKit re-enable SharedArrayBuffer. Sharing data between web workers and the main thread without SharedArrayBuffer is much slower, even though Safari is faster at a lot of things than other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704343</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 00:29:22 -0800</bug_when>
    <thetext>*** Bug 197191 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704357</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 01:57:14 -0800</bug_when>
    <thetext>*** Bug 185038 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704744</commentid>
    <comment_count>4</comment_count>
      <attachid>413257</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 23:29:55 -0800</bug_when>
    <thetext>Created attachment 413257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704784</commentid>
    <comment_count>5</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2020-11-05 01:50:57 -0800</bug_when>
    <thetext>Yusuke, I might be missing something but it doesn&apos;t seem like this patch guards it with cross-origin isolated (as defined in the HTML Standard). That&apos;s somewhat important if you want to enable this in a safe manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704785</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2020-11-05 01:53:06 -0800</bug_when>
    <thetext>Cross-origin isolated is https://bugs.webkit.org/show_bug.cgi?id=215407 - as Anne said, I believe it should be blocking this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704790</commentid>
    <comment_count>7</comment_count>
      <attachid>413275</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 02:05:41 -0800</bug_when>
    <thetext>Created attachment 413275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704944</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 11:14:43 -0800</bug_when>
    <thetext>(In reply to Anne van Kesteren from comment #5)
&gt; Yusuke, I might be missing something but it doesn&apos;t seem like this patch
&gt; guards it with cross-origin isolated (as defined in the HTML Standard).
&gt; That&apos;s somewhat important if you want to enable this in a safe manner.

(In reply to Simon Pieters from comment #6)
&gt; Cross-origin isolated is https://bugs.webkit.org/show_bug.cgi?id=215407 - as
&gt; Anne said, I believe it should be blocking this bug.

We will implement it, and for SharedArrayBuffer / Atomics, we will enable it for WebKitTestRunner etc.
Once cross-origin isolation is done, we just flip runtime flag to expose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704948</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 11:21:13 -0800</bug_when>
    <thetext>And possibly we will enable it for JavaScriptCore.framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705108</commentid>
    <comment_count>10</comment_count>
      <attachid>413388</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 19:52:51 -0800</bug_when>
    <thetext>Created attachment 413388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705125</commentid>
    <comment_count>11</comment_count>
      <attachid>413398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 20:59:55 -0800</bug_when>
    <thetext>Created attachment 413398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705147</commentid>
    <comment_count>12</comment_count>
      <attachid>413408</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-06 00:17:02 -0800</bug_when>
    <thetext>Created attachment 413408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705148</commentid>
    <comment_count>13</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2020-11-06 00:29:50 -0800</bug_when>
    <thetext>Thanks for confirming Yusuke, exciting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705253</commentid>
    <comment_count>14</comment_count>
      <attachid>413408</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-11-06 08:26:15 -0800</bug_when>
    <thetext>Comment on attachment 413408
Patch

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

r=me with some nits, if you fix the style issues.

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:2725
&gt; +
&gt; +            if (m_inlineStackTop-&gt;m_exitProfile.hasExitSite(m_currentIndex, BadIndexingType)
&gt; +                || m_inlineStackTop-&gt;m_exitProfile.hasExitSite(m_currentIndex, BadConstantCache)
&gt; +                || m_inlineStackTop-&gt;m_exitProfile.hasExitSite(m_currentIndex, BadCache)
&gt; +                || m_inlineStackTop-&gt;m_exitProfile.hasExitSite(m_currentIndex, BadType))
&gt; +                return false;

Is there a reason to not include all exits (other than Uncountable and friends) here?

&gt; Source/JavaScriptCore/jsc.cpp:3102
&gt; +    fprintf(stderr, &quot;  --can-block-is-false       Make main thread&apos;s [[CanBlock]] false\n&quot;);

Nit: Maybe phrase this as &quot;Make main thread&apos;s Atomics.wait throw&quot;? Can block may be a little obscure and I&apos;m sure I&apos;ll forget in the future...

&gt; Tools/Scripts/test262/Runner.pm:708
&gt; +    if (grep $_ eq &apos;CanBlockIsFalse&apos;, @{$data-&gt;{flags}}) {
&gt; +        $featureFlags .= &apos; --can-block-is-false&apos;;
&gt; +    }

Yikes, that seems expensive to do on every file...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705308</commentid>
    <comment_count>15</comment_count>
      <attachid>413408</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-06 11:04:13 -0800</bug_when>
    <thetext>Comment on attachment 413408
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:2725
&gt;&gt; +                return false;
&gt; 
&gt; Is there a reason to not include all exits (other than Uncountable and friends) here?

Atomic operation is GetByVal from TypedArray + read-modify-write operation. And it also has Int32 Type checks for index argument.
And we also need FixupPhase&apos;s checkArray thing to ensure that input is requested TypedArray.
Those checks may emit these exits. And I need to include OutOfBounds too here. Changed.

&gt;&gt; Source/JavaScriptCore/jsc.cpp:3102
&gt;&gt; +    fprintf(stderr, &quot;  --can-block-is-false       Make main thread&apos;s [[CanBlock]] false\n&quot;);
&gt; 
&gt; Nit: Maybe phrase this as &quot;Make main thread&apos;s Atomics.wait throw&quot;? Can block may be a little obscure and I&apos;m sure I&apos;ll forget in the future...

Nice, fixed.

&gt;&gt; Tools/Scripts/test262/Runner.pm:708
&gt;&gt; +    }
&gt; 
&gt; Yikes, that seems expensive to do on every file...

We are already doing flags check to extract `noStrict` etc. So, I don&apos;t expect this will change the cost :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705363</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-06 12:23:56 -0800</bug_when>
    <thetext>Committed r269531: &lt;https://trac.webkit.org/changeset/269531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705366</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-06 12:24:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/71129125&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413257</attachid>
            <date>2020-11-04 23:29:55 -0800</date>
            <delta_ts>2020-11-05 02:05:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212069-20201104232954.patch</filename>
            <type>text/plain</type>
            <size>95734</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MTkxYTIyM2M0YWRkODkzMzBiNmY4NDExNGRlY2RjN2I3MjY1YTc1Li44NTQyYjQ3ZTg0YzdlNTQ1
MGYyMmZmNTcxMDZkYTYwNWE0YTg5YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAo
c29ydCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAq
IGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6
OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6
CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6
Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Om11c3RHZW5lcmF0ZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
VmFyQXJncyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6bXVzdEdlbmVyYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZH
U1NBTG93ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJpbmdQaGFz
ZTo6aGFuZGxlTm9kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUF0b21pY3NJc0xvY2tGcmVlKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAocHJpbnRVc2FnZVN0YXRlbWVudCk6CisgICAgICAgIChDb21tYW5kTGluZTo6cGFyc2VB
cmd1bWVudHMpOgorICAgICAgICAocnVuSlNDKToKKyAgICAgICAgKiBydW50aW1lL0F0b21pY3NP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpBdG9taWNzT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjp0b0ludGVnZXJPckluZmluaXR5IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6
OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UpOgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6
CisgICAgICAgICogcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnNMaXN0
Lmg6CisgICAgICAgICogcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpTaW1wbGVUeXBlZEFycmF5
Q29udHJvbGxlcik6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpp
c0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVhZCk6CisgICAgICAgICogcnVudGltZS9T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oOgorCiAyMDIwLTExLTA0ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IHNob3VsZCByZW1vdmUgdW51
c2VkIGRlYnVnIHZhcmlhbnQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmOTY5NmYzYTI0OWVkNzkwZDU0M2VlNWM1
NTA3NmFhYWUwMDRkNTRhLi5mNWVjMThjNGRkMDJkZjM3ZDc3ZTExYzAwM2M2OWRhNTI4ZDkzMjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIwNjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUVuYWJsZS5oOgorCiAyMDIwLTExLTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkIHdvcmthcm91bmQgZm9yIExpbnV4IGJ1aWxk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXgg
OWI5YjY0ODgyMGFjMWMyZTU5ODk3ZmFkODNmZGZmZTM3YzdhODVmNS4uNjM5ZTMzYWVlMTBkNTlk
MjI0ZDU5NWM0MzYwMzczN2YwZjIwYTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMTE3LDcgKzExNyw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCiAgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVj
dG9yKSBcCiAgICAgbWFjcm8oaXNUeXBlZEFycmF5VmlldykgXAorICAgIG1hY3JvKGlzU2hhcmVk
VHlwZWRBcnJheVZpZXcpIFwKICAgICBtYWNybyhpc0RldGFjaGVkKSBcCisgICAgbWFjcm8odHlw
ZWRBcnJheURlZmF1bHRDb21wYXJhdG9yKSBcCiAgICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBc
CiAgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaW5zdGFu
Y2VPZikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVk
QXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRB
cnJheVByb3RvdHlwZS5qcwppbmRleCAyYWRmY2YzOWNlMGRjMjM1MGZmMWRhNzVkNjkzMWYwMTY3
YzJmMGZlLi4xYzg3YWJmZDFlZDljZTY3NDVhMTY1MTBlNzc5MzE5OWEyNjBkZGUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5q
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlw
ZS5qcwpAQCAtMjM4LDkgKzIzOCwxMyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAg
aWYgKGxlbmd0aCA8IDIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChjb21wYXJhdG9yICE9
PSBAdW5kZWZpbmVkKQorICAgIC8vIHR5cGVkQXJyYXlTb3J0IGlzIG5vdCBzYWZlIHdoZW4gdGhl
IG90aGVyIHRocmVhZCBpcyBtb2RpZnlpbmcgY29udGVudC4gU28gaWYgfHRoaXN8IGlzIFNoYXJl
ZEFycmF5QnVmZmVyLAorICAgIC8vIHVzZSBKUy1pbXBsZW1lZW50ZWQgc29ydGluZy4KKyAgICBp
ZiAoY29tcGFyYXRvciAhPT0gQHVuZGVmaW5lZCB8fCBAaXNTaGFyZWRUeXBlZEFycmF5Vmlldyh0
aGlzKSkgeworICAgICAgICBpZiAoY29tcGFyYXRvciA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgIGNvbXBhcmF0b3IgPSBAdHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yOwogICAgICAgICBA
dHlwZWRBcnJheU1lcmdlU29ydCh0aGlzLCBsZW5ndGgsIGNvbXBhcmF0b3IpOwotICAgIGVsc2UK
KyAgICB9IGVsc2UKICAgICAgICAgQHR5cGVkQXJyYXlTb3J0KHRoaXMpOwogCiAgICAgcmV0dXJu
IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1Rp
bWVDb25zdGFudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaAppbmRleCA5MjNlYmI5OGE2ZmI3YmZmZGRmNzYxMWEwMmEyNjE0MDI0OWM2ODdkLi5k
MzU5YTM4NTYwNjYyODA2ZDA4MDA0YWY2MGJlZmI3N2ZmYzdlNWJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKQEAgLTUzLDcgKzUz
LDkgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiAgICAgdih0eXBlZEFycmF5R2V0T3JpZ2luYWxD
b25zdHJ1Y3RvciwgbnVsbHB0cikgXAogICAgIHYodHlwZWRBcnJheVNvcnQsIG51bGxwdHIpIFwK
ICAgICB2KGlzVHlwZWRBcnJheVZpZXcsIG51bGxwdHIpIFwKKyAgICB2KGlzU2hhcmVkVHlwZWRB
cnJheVZpZXcsIG51bGxwdHIpIFwKICAgICB2KGlzRGV0YWNoZWQsIG51bGxwdHIpIFwKKyAgICB2
KHR5cGVkQXJyYXlEZWZhdWx0Q29tcGFyYXRvciwgbnVsbHB0cikgXAogICAgIHYodHlwZWRBcnJh
eVN1YmFycmF5Q3JlYXRlLCBudWxscHRyKSBcCiAgICAgdihpc0JvdW5kRnVuY3Rpb24sIG51bGxw
dHIpIFwKICAgICB2KGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikgXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCmluZGV4IDIzN2M0ZTI4NzExNjQ5NTZkMGU0YWQwM2JjYWZiMGM4ZTYwNzI4Y2Yu
LmUzOTBlYjYxZDUzYzhiN2ExOGJiZTVkM2FmZWJmMTA2NzMxNzk3MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKQEAgLTgyNiw3ICs4MjYsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIH0K
ICAgICAgICAgCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZTogewotICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpICE9IEludDMyVXNlKQorICAgICAgICBpZiAobV9ncmFwaC5j
aGlsZChub2RlLCAwKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpCiAgICAgICAgICAgICBjbG9iYmVy
V29ybGQoKTsKICAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCb29sSW50
MzIpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZmQ4NzE0YTI1MDkyMDhmOTVhMTU1YWZiNTdlNmQ0MzI4
YzBhNjFlOS4uOTk4MGM4OTE4NTZiZmE5NGZiYzUyNjdkZWU3NDUxZTVjZWQ2ZWM5NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI3
MTcsMjQgKzI3MTcsMTkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2Fs
bChOb2RlKiBjYWxsZWUsIE9wZXJhbmQgcmVzdWx0LCBJbnRyaW5zaWMKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcykgPCAxICsgbnVtQXJncykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRT
aXRlKG1fY3VycmVudEluZGV4LCBCYWRJbmRleGluZ1R5cGUpCisgICAgICAgICAgICAgICAgfHwg
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgQmFkQ29uc3RhbnRDYWNoZSkKKyAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9w
LT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKKyAg
ICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRT
aXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGluc2VydENoZWNrcygpOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBWZWN0b3I8Tm9kZSosIDM+IGFyZ3M7CiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQXJnczsgKytpKQotICAgICAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSArIGks
IHJlZ2lzdGVyT2Zmc2V0KSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBOb2RlKiByZXN1
bHROb2RlOwotICAgICAgICAgICAgaWYgKG51bUFyZ3MgKyAxIDw9IDMpIHsKLSAgICAgICAgICAg
ICAgICB3aGlsZSAoYXJncy5zaXplKCkgPCAzKQotICAgICAgICAgICAgICAgICAgICBhcmdzLmFw
cGVuZChudWxscHRyKTsKLSAgICAgICAgICAgICAgICByZXN1bHROb2RlID0gYWRkVG9HcmFwaChv
cCwgT3BJbmZvKEFycmF5TW9kZShBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9ucywgYWN0aW9u
KS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1sy
XSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZvciAoTm9kZSogbm9k
ZSA6IGFyZ3MpCi0gICAgICAgICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKG5vZGUpOwotICAg
ICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHJl
c3VsdE5vZGUgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbyhBcnJheU1vZGUo
QXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnMsIGFjdGlvbikuYXNXb3JkKCkpLCBPcEluZm8o
cHJlZGljdGlvbikpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFkZFZhckFyZ0No
aWxkKGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSArIGksIHJl
Z2lzdGVyT2Zmc2V0KSkpOworICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7Cisg
ICAgICAgICAgICBOb2RlKiByZXN1bHROb2RlID0gYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIG9w
LCBPcEluZm8oQXJyYXlNb2RlKEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zLCBhY3Rpb24p
LmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgc2V0UmVzdWx0KHJlc3VsdE5vZGUpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDhmNjg3YThiZWFhMTEy
YmZiNmRjZjU3ZjI3MmE3NDlhZTc1NWE3ZTUuLmYwOWRmY2Q0ZTU0MDgzZWVlODQzMjAzMGExYmMw
OTIxNGZiN2Q2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CkBAIC0yNTMsOCArMjUzLDggQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZToKLSAgICAgICAgaWYgKG5vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSA9PSBJbnQzMlVzZSkKLSAgICAgICAgICAgIGRlZihQdXJlVmFsdWUo
bm9kZSkpOworICAgICAgICBpZiAoZ3JhcGguY2hpbGQobm9kZSwgMCkudXNlS2luZCgpID09IElu
dDMyVXNlKQorICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShncmFwaCwgbm9kZSkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBjbG9iYmVyVG9wKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGViMDQ2NTM0ODNj
MTBjMmMyYTBlMDRlMjBjYTc2OTBmMzIxZmYxMzAuLjc0ZWVlMTIwMzQ5MDllZWM3YTVjMDVjYTYz
NmM0NzZkZDJiNGU1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcApAQCAtMTM2NSw4ICsxMzY1LDggQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEF0b21pY3NJc0xv
Y2tGcmVlOgotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVJ
bnQzMigpKQotICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgaWYgKG1fZ3JhcGguY2hpbGQobm9kZSwgMCktPnNob3VsZFNwZWN1
bGF0ZUludDMyKCkpCisgICAgICAgICAgICAgICAgZml4SW50T3JCb29sZWFuRWRnZShtX2dyYXBo
LmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgQXJyYXlQdXNoOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4
IDg5N2I5OTllOTU0NGUyOWNmMDA2ZjlkODZjNDI3ZTU2OTMzZDVkZmUuLmFiZWIxN2JkYzBmMzEz
NDZkYTIzMzc3MjQyOTA2ZTc2NWM4MGEwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCkBAIC01MDQsMTAgKzUwNCwxNSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgdm9pZCBjb252ZXJ0
VG9JZGVudGl0eSgpOwogICAgIHZvaWQgY29udmVydFRvSWRlbnRpdHlPbihOb2RlKik7CiAKLSAg
ICBib29sIG11c3RHZW5lcmF0ZSgpCisgICAgYm9vbCBtdXN0R2VuZXJhdGUoKSBjb25zdAogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTXVzdEdlbmVyYXRlOwogICAgIH0KKwor
ICAgIGJvb2wgaGFzVmFyQXJncygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFn
cyAmIE5vZGVIYXNWYXJBcmdzOworICAgIH0KICAgICAKICAgICBib29sIGlzQ29uc3RhbnQoKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCAxYzI2YzNj
MTUxNGFhYzIyNjU4ZDMwNDRiYThkNGFiMmU0N2Q5MWU5Li43ODNhYzhhZTc0MDNkMzJkYWY1M2U3
N2E0Mjg5ZWQ4MTQ5NTgxMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCkBAIC0yOTksOCArMjk5LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
ICAgIG1hY3JvKEF0b21pY3NBbmQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKEF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIE5vZGVS
ZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIG1hY3Jv
KEF0b21pY3NFeGNoYW5nZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVI
YXNWYXJBcmdzKSBcCi0gICAgbWFjcm8oQXRvbWljc0lzTG9ja0ZyZWUsIE5vZGVSZXN1bHRCb29s
ZWFuKSBcCi0gICAgbWFjcm8oQXRvbWljc0xvYWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKKyAgICBtYWNybyhBdG9taWNzSXNMb2NrRnJlZSwgTm9kZVJlc3VsdEJvb2xlYW4g
fCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKEF0b21pY3NMb2FkLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKICAgICBtYWNybyhBdG9taWNz
T3IsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAog
ICAgIG1hY3JvKEF0b21pY3NTdG9yZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc1N1YiwgTm9kZVJlc3VsdEpTIHwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAppbmRleCA2YjY1YjY3N2IxZGRl
MmFhMDY1ZjUzYTEyZTQ1Y2M0Y2M3MjdkNzg4Li42Mzg2YjhhMzYyZTEzZTJhMGE4MDAxYWYzODNh
ZTRmZWY4Y2M5YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NT
QUxvd2VyaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NB
TG93ZXJpbmdQaGFzZS5jcHAKQEAgLTc1LDcgKzc1LDEyIEBAIGNsYXNzIFNTQUxvd2VyaW5nUGhh
c2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIEF0b21pY3NPcjoKICAgICAgICAgY2Fz
ZSBBdG9taWNzU3RvcmU6CiAgICAgICAgIGNhc2UgQXRvbWljc1N1YjoKLSAgICAgICAgY2FzZSBB
dG9taWNzWG9yOgorICAgICAgICBjYXNlIEF0b21pY3NYb3I6IHsKKyAgICAgICAgICAgIHVuc2ln
bmVkIG51bUV4dHJhQXJncyA9IG51bUV4dHJhQXRvbWljc0FyZ3MobV9ub2RlLT5vcCgpKTsKKyAg
ICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2sobV9ncmFwaC5jaGlsZChtX25vZGUsIDApLCBtX2dy
YXBoLmNoaWxkKG1fbm9kZSwgMSksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAyICsgbnVtRXh0cmFB
cmdzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgSGFz
SW5kZXhlZFByb3BlcnR5OgogICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjayhtX2dyYXBoLmNo
aWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAxKSwgbV9ncmFwaC5jaGlsZCht
X25vZGUsIDIpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNjQ2NDdlYzI0MjA3NmY1MGNm
N2VmOTJmZTFiMzFkOTNiNThiY2FkMy4uNWNkZWViMzg1ODk0ZDc4OWFhNmFjMTQyNzkwZWMyZmM0
NmU0OGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC0zNDMwLDggKzM0MzAsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIEF0b21pY3NJc0xv
Y2tGcmVlOiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJV
c2UpIHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICBFZGdlIGNoaWxkMSA9IG1fZ3JhcGguY2hpbGQobm9kZSwgMCk7Cisg
ICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpICE9IEludDMyVXNlKSB7CisgICAgICAgICAgICBK
U1ZhbHVlT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGNoaWxkMSk7CiAgICAgICAgICAgICBHUFJSZWcg
b3BlcmFuZEdQUiA9IG9wZXJhbmQuZ3ByKCk7CiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OwogICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwpAQCAtMzQ0
Miw3ICszNDQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBTcGVjdWxhdGVJbnQzMk9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIFNwZWN1bGF0ZUlu
dDMyT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGNoaWxkMSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0gb3BlcmFuZC5ncHIoKTsK
ICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBkZDU4YmI1NDZhMWM2M2Rj
Y2NlZjc2MDE0MGE5ZDA0Y2I1YWE3OGIxLi4wZmUyZDBmMDEzOThjZTZiYjU1MjhkNDdhM2Y1YmU4
Mzk3MTViMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC00Mjc3LDEyICs0Mjc3LDEzIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAg
dm9pZCBjb21waWxlQXRvbWljc0lzTG9ja0ZyZWUoKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNl
bWFudGljKTsKLSAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpICE9IEludDMy
VXNlKSB7Ci0gICAgICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uQXRv
bWljc0lzTG9ja0ZyZWUsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDEoKSkpKTsKKyAgICAgICAgRWRnZSBjaGlsZDEgPSBtX2dyYXBoLmNoaWxkKG1f
bm9kZSwgMCk7CisgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpICE9IEludDMyVXNlKSB7Cisg
ICAgICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uQXRvbWljc0lzTG9j
a0ZyZWUsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pTVmFsdWUoY2hpbGQxKSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBMVmFsdWUg
Ynl0ZXMgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGJ5dGVz
ID0gbG93SW50MzIoY2hpbGQxKTsKICAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIHRydWVD
YXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgZmFsc2VDYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggZmU3ZTdmYzBjZmMxMzdj
ZmRjZGFlMzkwMzYxYjVkNzBjZDQ0M2MyZi4uYzk1ZjhiMTY1ZThmYWM3MDgwZTU0NzViZTkwZmQ0
NWMxNjJjNjk4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNs
dWRlICJQcm9maWxlckRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiUmVsZWFzZUhlYXBBY2Nlc3NTY29w
ZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKKyNpbmNsdWRlICJTaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKQEAgLTQyNCw2
ICs0MjUsNyBAQCBjbGFzcyBDb21tYW5kTGluZSB7CiAgICAgYm9vbCBtX2R1bXBNZW1vcnlGb290
cHJpbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kdW1wU2FtcGxpbmdQcm9maWxlckRhdGEgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVSZW1vdGVEZWJ1Z2dpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9jYW5CbG9ja0lzRmFsc2UgeyBmYWxzZSB9OwogCiAgICAgdm9pZCBwYXJzZUFyZ3Vt
ZW50cyhpbnQsIGNoYXIqKik7CiB9OwpAQCAtMzA5Nyw2ICszMDk5LDcgQEAgc3RhdGljIE5PX1JF
VFVSTiB2b2lkIHByaW50VXNhZ2VTdGF0ZW1lbnQoYm9vbCBoZWxwID0gZmFsc2UpCiAgICAgZnBy
aW50ZihzdGRlcnIsICIgIC0tZHVtcE9wdGlvbnMgICAgICAgICAgICAgIER1bXBzIGFsbCBub24t
ZGVmYXVsdCBKU0MgVk0gb3B0aW9ucyBiZWZvcmUgY29udGludWluZ1xuIik7CiAgICAgZnByaW50
ZihzdGRlcnIsICIgIC0tPGpzYyBWTSBvcHRpb24+PTx2YWx1ZT4gIFNldHMgdGhlIHNwZWNpZmll
ZCBKU0MgVk0gb3B0aW9uXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXN0cm95LXZt
ICAgICAgICAgICAgICAgRGVzdHJveSBWTSBiZWZvcmUgZXhpdGluZ1xuIik7CisgICAgZnByaW50
ZihzdGRlcnIsICIgIC0tY2FuLWJsb2NrLWlzLWZhbHNlICAgICAgIE1ha2UgbWFpbiB0aHJlYWQn
cyBbW0NhbkJsb2NrXV0gZmFsc2VcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkZpbGVzIHdpdGggYSAubWpzIGV4dGVuc2lvbiB3aWxsIGFsd2F5
cyBiZSBldmFsdWF0ZWQgYXMgbW9kdWxlcy5cbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiXG4i
KTsKQEAgLTMyMzEsNiArMzIzNCwxMCBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50
cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICBtX2Rlc3Ryb3lWTSA9IHRydWU7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmNtcChh
cmcsICItLWNhbi1ibG9jay1pcy1mYWxzZSIpKSB7CisgICAgICAgICAgICBtX2NhbkJsb2NrSXNG
YWxzZSA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICBp
ZiAoIXN0cmNtcChhcmcsICItLWRpc2FibGVPcHRpb25zRnJlZXppbmdGb3JUZXN0aW5nIikpIHsK
ICAgICAgICAgICAgIENvbmZpZzo6ZGlzYWJsZUZyZWV6aW5nRm9yVGVzdGluZygpOwogICAgICAg
ICAgICAgY29udGludWU7CkBAIC0zMzI5LDYgKzMzMzYsOCBAQCBpbnQgcnVuSlNDKGNvbnN0IENv
bW1hbmRMaW5lJiBvcHRpb25zLCBib29sIGlzV29ya2VyLCBjb25zdCBGdW5jJiBmdW5jKQogICAg
IFdvcmtlciB3b3JrZXIoV29ya2Vyczo6c2luZ2xldG9uKCkpOwogICAgIAogICAgIFZNJiB2bSA9
IFZNOjpjcmVhdGUoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CisgICAgaWYgKCFpc1dvcmtlciAmJiBv
cHRpb25zLm1fY2FuQmxvY2tJc0ZhbHNlKQorICAgICAgICB2bS5tX3R5cGVkQXJyYXlDb250cm9s
bGVyID0gYWRvcHRSZWYobmV3IEpTQzo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoZmFsc2Up
KTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2FzbTo6ZW5hYmxlRmFzdE1lbW9yeSgp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9t
aWNzT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmpl
Y3QuY3BwCmluZGV4IDdlMzBhYmU2YjM5ODdlMTI1OTAwNzBhMjNkNTMwMmNhZDdjYTcwZGEuLmJl
MDVmMTg1NTk2NDUyMTUwYTk0ZDE0NGM3ZGQ4MTE2MjdjNDM5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCkBAIC00MywxMSArNDMsMTEg
QEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEF0b21pY3NPYmplY3Qp
OwogICAgIG1hY3JvKGV4Y2hhbmdlLCBFeGNoYW5nZSwgMykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKGlzTG9ja0ZyZWUsIElzTG9ja0ZyZWUsIDEp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKGxvYWQsIExv
YWQsIDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIG1hY3JvKG5vdGlmeSwgTm90aWZ5LCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKG9yLCBPciwgMykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKHN0b3JlLCBTdG9y
ZSwgMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
IG1hY3JvKHN1YiwgU3ViLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIG1hY3JvKHdhaXQsIFdhaXQsIDQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIG1hY3JvKHdha2UsIFdha2UsIDMp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1h
Y3JvKHhvciwgWG9yLCAzKQogCiAjZGVmaW5lIERFQ0xBUkVfRlVOQ19QUk9UTyhsb3dlck5hbWUs
IHVwcGVyTmFtZSwgY291bnQpICBcCkBAIC04Myw0NSArODMsNDMgQEAgdm9pZCBBdG9taWNzT2Jq
ZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbG93ZXJOYW1lKSwgY291bnQsIGF0
b21pY3NGdW5jICMjIHVwcGVyTmFtZSwgQXRvbWljcyAjIyB1cHBlck5hbWUgIyMgSW50cmluc2lj
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAg
ICAgRk9SX0VBQ0hfQVRPTUlDU19GVU5DKFBVVF9ESVJFQ1RfTkFUSVZFX0ZVTkMpCiAjdW5kZWYg
UFVUX0RJUkVDVF9OQVRJVkVfRlVOQworCisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9U
UkFOU0lUSU9OKCk7CiB9CiAKIG5hbWVzcGFjZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0
b3IsIHR5cGVuYW1lIEZ1bmM+Ci1FbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJn
c0Nhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywg
VGhyb3dTY29wZSYgc2NvcGUsIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5VmlldywgdW5z
aWduZWQgYWNjZXNzSW5kZXgsIGNvbnN0IEZ1bmMmIGZ1bmMpCitFbmNvZGVkSlNWYWx1ZSBhdG9t
aWNSZWFkTW9kaWZ5V3JpdGVDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IEpTVmFsdWUqIGFyZ3MsIFRocm93U2NvcGUmIHNjb3BlLCBKU0FycmF5QnVmZmVyVmlldyogdHlw
ZWRBcnJheVZpZXcsIHVuc2lnbmVkIGFjY2Vzc0luZGV4LCBjb25zdCBGdW5jJiBmdW5jKQogewog
ICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+KiB0eXBlZEFycmF5ID0ganNDYXN0
PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Kj4odHlwZWRBcnJheVZpZXcpOwogICAg
IAogICAgIGRvdWJsZSBleHRyYUFyZ3NbRnVuYzo6bnVtRXh0cmFBcmdzICsgMV07IC8vIEFkZCAx
IHRvIGF2b2lkIDAgc2l6ZSBhcnJheSBlcnJvciBpbiBWUy4KICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgRnVuYzo6bnVtRXh0cmFBcmdzOyArK2kpIHsKLSAgICAgICAgZG91YmxlIHZhbHVl
ID0gYXJnc1syICsgaV0udG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgICAgIGRvdWJsZSB2
YWx1ZSA9IGFyZ3NbMiArIGldLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpKTsKICAgICAgICAgZXh0cmFBcmdzW2ldID0gdmFsdWU7CiAgICAgfQogCisgICAgaWYg
KHR5cGVkQXJyYXktPmlzRGV0YWNoZWQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVy
cm9yTWVzc2FnZSk7CisKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZ1bmModHlwZWRBcnJh
eS0+dHlwZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4LCBleHRyYUFyZ3MpKTsKIH0KIAotdW5zaWdu
ZWQgdmFsaWRhdGVkQWNjZXNzSW5kZXgoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIGFjY2Vzc0luZGV4VmFsdWUsIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFy
cmF5VmlldykKK3N0YXRpYyB1bnNpZ25lZCB2YWxpZGF0ZUF0b21pY0FjY2VzcyhWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5
VmlldywgSlNWYWx1ZSBhY2Nlc3NJbmRleFZhbHVlKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBpZiAoVU5MSUtFTFkoIWFjY2Vzc0luZGV4VmFsdWUu
aXNJbnQzMigpKSkgewotICAgICAgICBkb3VibGUgYWNjZXNzSW5kZXhEb3VibGUgPSBhY2Nlc3NJ
bmRleFZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CisgICAgdW5zaWduZWQgYWNjZXNzSW5k
ZXggPSAwOworICAgIGlmIChMSUtFTFkoYWNjZXNzSW5kZXhWYWx1ZS5pc1VJbnQzMigpKSkKKyAg
ICAgICAgYWNjZXNzSW5kZXggPSBhY2Nlc3NJbmRleFZhbHVlLmFzVUludDMyKCk7CisgICAgZWxz
ZSB7CisgICAgICAgIGFjY2Vzc0luZGV4ID0gYWNjZXNzSW5kZXhWYWx1ZS50b0luZGV4KGdsb2Jh
bE9iamVjdCwgImFjY2Vzc0luZGV4Iik7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIDApOwotICAgICAgICBpZiAoYWNjZXNzSW5kZXhEb3VibGUgPT0gMCkKLSAgICAgICAgICAg
IGFjY2Vzc0luZGV4VmFsdWUgPSBqc051bWJlcigwKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBhY2Nlc3NJbmRleFZhbHVlID0ganNOdW1iZXIoYWNjZXNzSW5kZXhEb3VibGUpOwotICAg
ICAgICAgICAgaWYgKCFhY2Nlc3NJbmRleFZhbHVlLmlzSW50MzIoKSkgewotICAgICAgICAgICAg
ICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQWNjZXNzIGluZGV4IGlz
IG5vdCBhbiBpbnRlZ2VyLiJfcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KICAgICB9Ci0gICAgaW50MzJfdCBhY2Nlc3NJbmRleCA9IGFjY2Vz
c0luZGV4VmFsdWUuYXNJbnQzMigpOwogICAgIAogICAgIEFTU0VSVCh0eXBlZEFycmF5Vmlldy0+
bGVuZ3RoKCkgPD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKLSAgICBpZiAoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGFjY2Vzc0luZGV4KSA+PSB0eXBlZEFycmF5Vmlldy0+bGVuZ3Ro
KCkpIHsKKyAgICBpZiAoYWNjZXNzSW5kZXggPj0gdHlwZWRBcnJheVZpZXctPmxlbmd0aCgpKSB7
CiAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQWNjZXNzIGlu
ZGV4IG91dCBvZiBib3VuZHMgZm9yIGF0b21pYyBhY2Nlc3MuIl9zKTsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQpAQCAtMTI5LDU1ICsxMjcsODkgQEAgdW5zaWduZWQgdmFsaWRhdGVkQWNjZXNz
SW5kZXgoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFjY2UK
ICAgICByZXR1cm4gYWNjZXNzSW5kZXg7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+Ci1F
bmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIGFyZ3MsIGNvbnN0IEZ1bmMmIGZ1bmMp
CitzdGF0aWMgSlNBcnJheUJ1ZmZlclZpZXcqIHZhbGlkYXRlVHlwZWRBcnJheShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHR5cGVkQXJyYXlWYWx1ZSkKIHsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgSlNWYWx1ZSB0eXBlZEFycmF5VmFsdWUgPSBhcmdzWzBdOwogICAg
IGlmICghdHlwZWRBcnJheVZhbHVlLmlzQ2VsbCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBhcmd1bWVudCBtdXN0IGJlIGEgY2Vs
bC4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQXJndW1lbnQgbmVl
ZHMgdG8gYmUgYSB0eXBlZCBhcnJheS4iX3MpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9Ci0gICAgCisKICAgICBKU0NlbGwqIHR5cGVkQXJyYXlDZWxsID0gdHlwZWRBcnJheVZhbHVl
LmFzQ2VsbCgpOwotICAgIAotICAgIEpTVHlwZSB0eXBlID0gdHlwZWRBcnJheUNlbGwtPnR5cGUo
KTsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIEludDhBcnJheVR5cGU6Ci0gICAgY2Fz
ZSBJbnQxNkFycmF5VHlwZToKLSAgICBjYXNlIEludDMyQXJyYXlUeXBlOgotICAgIGNhc2UgVWlu
dDhBcnJheVR5cGU6Ci0gICAgY2FzZSBVaW50MTZBcnJheVR5cGU6Ci0gICAgY2FzZSBVaW50MzJB
cnJheVR5cGU6Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBhcmd1bWVudCBtdXN0IGJl
IGFuIEludDhBcnJheSwgSW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDhBcnJheSwgVWludDE2
QXJyYXksIG9yIFVpbnQzMkFycmF5LiJfcyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgaWYgKCFpc1R5cGVkVmlldyh0eXBlZEFycmF5Q2VsbC0+
Y2xhc3NJbmZvKHZtKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkgeworICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQXJndW1lbnQgbmVlZHMgdG8gYmUgYSB0eXBl
ZCBhcnJheS4iX3MpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgCi0gICAg
SlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3ID0ganNDYXN0PEpTQXJyYXlCdWZmZXJW
aWV3Kj4odHlwZWRBcnJheUNlbGwpOwotICAgIGlmICghdHlwZWRBcnJheVZpZXctPmlzU2hhcmVk
KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVk
IGFycmF5IGFyZ3VtZW50IG11c3Qgd3JhcCBhIFNoYXJlZEFycmF5QnVmZmVyLiJfcyk7Ci0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisKKyAgICBKU0FycmF5
QnVmZmVyVmlldyogdHlwZWRBcnJheSA9IGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KHR5cGVk
QXJyYXlDZWxsKTsKKyAgICBpZiAodHlwZWRBcnJheS0+aXNEZXRhY2hlZCgpKSB7CisgICAgICAg
IHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcmd1bWVudCB0eXBlZCBhcnJh
eSBpcyBkZXRhY2hlZC4iX3MpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAg
Ci0gICAgdW5zaWduZWQgYWNjZXNzSW5kZXggPSB2YWxpZGF0ZWRBY2Nlc3NJbmRleCh2bSwgZ2xv
YmFsT2JqZWN0LCBhcmdzWzFdLCB0eXBlZEFycmF5Vmlldyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKLSAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICByZXR1cm4gdHlwZWRBcnJheTsKK30KKworZW51bSBjbGFzcyBU
eXBlZEFycmF5T3BlcmF0aW9uTW9kZSB7IFJlYWQsIFdyaXRlIH07Cit0ZW1wbGF0ZTxUeXBlZEFy
cmF5T3BlcmF0aW9uTW9kZSBtb2RlPgoraW5saW5lIEpTQXJyYXlCdWZmZXJWaWV3KiB2YWxpZGF0
ZUludGVnZXJUeXBlZEFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dHlwZWRBcnJheVZhbHVlKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0FycmF5QnVm
ZmVyVmlldyogdHlwZWRBcnJheSA9IHZhbGlkYXRlVHlwZWRBcnJheShnbG9iYWxPYmplY3QsIHR5
cGVkQXJyYXlWYWx1ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKwor
ICAgIGlmIGNvbnN0ZXhwciAobW9kZSA9PSBUeXBlZEFycmF5T3BlcmF0aW9uTW9kZTo6V3JpdGUp
IHsKKyAgICAgICAgc3dpdGNoICh0eXBlZEFycmF5LT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBJ
bnQzMkFycmF5VHlwZToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5
IGFyZ3VtZW50IG11c3QgYmUgYW4gSW50MzJBcnJheS4iX3MpOworICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAodHlwZWRBcnJh
eS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSW50OEFycmF5VHlwZToKKyAgICAgICAgY2FzZSBJ
bnQxNkFycmF5VHlwZToKKyAgICAgICAgY2FzZSBJbnQzMkFycmF5VHlwZToKKyAgICAgICAgY2Fz
ZSBVaW50OEFycmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50MTZBcnJheVR5cGU6CisgICAgICAg
IGNhc2UgVWludDMyQXJyYXlUeXBlOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlw
ZWQgYXJyYXkgYXJndW1lbnQgbXVzdCBiZSBhbiBJbnQ4QXJyYXksIEludDE2QXJyYXksIEludDMy
QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQxNkFycmF5LCBvciBVaW50MzJBcnJheS4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHlwZWRB
cnJheTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KK0VuY29kZWRKU1ZhbHVlIGF0b21p
Y1JlYWRNb2RpZnlXcml0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IEpTVmFsdWUqIGFyZ3MsIGNvbnN0IEZ1bmMmIGZ1bmMpCit7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVk
QXJyYXlWaWV3ID0gdmFsaWRhdGVJbnRlZ2VyVHlwZWRBcnJheTxUeXBlZEFycmF5T3BlcmF0aW9u
TW9kZTo6UmVhZD4oZ2xvYmFsT2JqZWN0LCBhcmdzWzBdKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworCisgICAgdW5zaWduZWQgYWNjZXNzSW5kZXggPSB2YWxpZGF0ZUF0
b21pY0FjY2Vzcyh2bSwgZ2xvYmFsT2JqZWN0LCB0eXBlZEFycmF5VmlldywgYXJnc1sxXSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIHN3aXRjaCAodHlwZWRB
cnJheVZpZXctPnR5cGUoKSkgewogICAgIGNhc2UgSW50OEFycmF5VHlwZToKLSAgICAgICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxJbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0
LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAgICAg
ICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8SW50OEFkYXB0b3I+KGdsb2JhbE9i
amVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CiAg
ICAgY2FzZSBJbnQxNkFycmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldp
dGhBcmdzQ2FzZTxJbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVk
QXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAgICAgIHJldHVybiBhdG9taWNSZWFk
TW9kaWZ5V3JpdGVDYXNlPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwg
dHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIEludDMyQXJyYXlU
eXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPEludDMyQWRh
cHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0lu
ZGV4LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8SW50
MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNj
ZXNzSW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgVWludDhBcnJheVR5cGU6Ci0gICAgICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2U8VWludDhBZGFwdG9yPihnbG9iYWxPYmplY3Qs
IGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAg
ICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxVaW50OEFkYXB0b3I+KGdsb2JhbE9i
amVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CiAg
ICAgY2FzZSBVaW50MTZBcnJheVR5cGU6Ci0gICAgICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25X
aXRoQXJnc0Nhc2U8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlw
ZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1Jl
YWRNb2RpZnlXcml0ZUNhc2U8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29w
ZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIFVpbnQzMkFy
cmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxVaW50
MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNj
ZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2Fz
ZTxVaW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5Vmll
dywgYWNjZXNzSW5kZXgsIGZ1bmMpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CkBAIC0xODUsMTIgKzIxNywxMiBAQCBFbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVy
YXRpb25XaXRoQXJncyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbgog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgotRW5jb2RlZEpTVmFsdWUgYXRvbWljT3BlcmF0
aW9uV2l0aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIGNvbnN0IEZ1bmMmIGZ1bmMpCitFbmNvZGVkSlNWYWx1ZSBhdG9taWNSZWFkTW9kaWZ5
V3JpdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IGNvbnN0IEZ1bmMmIGZ1bmMpCiB7CiAgICAgSlNWYWx1ZSBhcmdzWzIgKyBGdW5jOjpudW1FeHRy
YUFyZ3NdOwogICAgIGZvciAodW5zaWduZWQgaSA9IDIgKyBGdW5jOjpudW1FeHRyYUFyZ3M7IGkt
LTspCiAgICAgICAgIGFyZ3NbaV0gPSBjYWxsRnJhbWUtPmFyZ3VtZW50KGkpOwotICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVj
dCwgYXJncywgZnVuYyk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCwgYXJncywgZnVuYyk7CiB9CiAKIHN0cnVjdCBBZGRG
dW5jIHsKQEAgLTMxNCwyMiArMzQ2LDIyIEBAIEVuY29kZWRKU1ZhbHVlIGlzTG9ja0ZyZWUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmcpCiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhdG9taWNzRnVuY0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0
aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFkZEZ1bmMoKSk7CisgICAgcmV0dXJuIGF0
b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQWRkRnVuYygpKTsK
IH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jQW5kLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQW5kRnVu
YygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBBbmRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWlj
c0Z1bmNDb21wYXJlRXhjaGFuZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdz
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDb21wYXJlRXhjaGFuZ2VGdW5jKCkpOworICAgIHJl
dHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIENvbXBh
cmVFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNz
RnVuY0V4Y2hhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgRXhjaGFuZ2VGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFk
TW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEV4Y2hhbmdlRnVuYygpKTsKIH0K
IAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jSXNMb2NrRnJlZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKQEAgLTMzOSw3
MSArMzcxLDU3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0lzTG9ja0Zy
ZWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihhdG9taWNzRnVuY0xvYWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBMb2FkRnVuYygpKTsKKyAgICByZXR1cm4gYXRv
bWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBMb2FkRnVuYygpKTsK
IH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jT3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1bmMo
KSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSwgT3JGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1
bmNTdG9yZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIFN0b3JlRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdy
aXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdG9yZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1N1YiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0
aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFN1YkZ1bmMoKSk7CisgICAgcmV0
dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgU3ViRnVu
YygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jV2FpdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIAotICAgIEpTSW50MzJBcnJheSogdHlwZWRBcnJheSA9IGpz
RHluYW1pY0Nhc3Q8SlNJbnQzMkFycmF5Kj4odm0sIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwot
ICAgIGlmICghdHlwZWRBcnJheSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgZm9yIHdhaXQvd2FrZSBtdXN0IGJlIGFuIEludDMyQXJy
YXkuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
LSAgICB9Ci0gICAgCisKKyAgICBhdXRvKiB0eXBlZEFycmF5QnVmZmVyID0gdmFsaWRhdGVJbnRl
Z2VyVHlwZWRBcnJheTxUeXBlZEFycmF5T3BlcmF0aW9uTW9kZTo6V3JpdGU+KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICBhdXRvKiB0eXBlZEFycmF5ID0ganNDYXN0PEpTSW50MzJBcnJheSo+KHR5
cGVkQXJyYXlCdWZmZXIpOworCiAgICAgaWYgKCF0eXBlZEFycmF5LT5pc1NoYXJlZCgpKSB7Ci0g
ICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBm
b3Igd2FpdC93YWtlIG11c3Qgd3JhcCBhIFNoYXJlZEFycmF5QnVmZmVyLiJfcyk7CisgICAgICAg
IHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBmb3Igd2Fp
dC9ub3RpZnkgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICB1bnNpZ25l
ZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4KHZtLCBnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+YXJndW1lbnQoMSksIHR5cGVkQXJyYXkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7Ci0gICAgCisgICAgdW5z
aWduZWQgYWNjZXNzSW5kZXggPSB2YWxpZGF0ZUF0b21pY0FjY2Vzcyh2bSwgZ2xvYmFsT2JqZWN0
LCB0eXBlZEFycmF5LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworCiAgICAgaW50MzJfdCogcHRyID0gdHlwZWRBcnJheS0+dHlw
ZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4OwotICAgIAorCiAgICAgaW50MzJfdCBleHBlY3RlZFZh
bHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgyKS50b0ludDMyKGdsb2JhbE9iamVjdCk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
KTsKLSAgICAKKwogICAgIGRvdWJsZSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDMpLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKKyAgICBT
ZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgpOworICAgIGlmICghc3RkOjppc25h
bih0aW1lb3V0SW5NaWxsaXNlY29uZHMpKQorICAgICAgICB0aW1lb3V0ID0gc3RkOjptYXgoU2Vj
b25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0SW5NaWxsaXNlY29uZHMpLCAwX3MpOworCiAg
ICAgaWYgKCF2bS5tX3R5cGVkQXJyYXlDb250cm9sbGVyLT5pc0F0b21pY3NXYWl0QWxsb3dlZE9u
Q3VycmVudFRocmVhZCgpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJBdG9taWNzLndhaXQgY2Fubm90IGJlIGNhbGxlZCBmcm9tIHRoZSBjdXJyZW50IHRo
cmVhZC4iX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIH0KLSAgICAKLSAgICBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjpmcm9tTWlsbGlz
ZWNvbmRzKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7Ci0KLSAgICAvLyBUaGlzIGNvdmVycyB0aGUg
cHJvcG9zZWQgcnVsZToKLSAgICAvLwotICAgIC8vIDQuIElmIHRpbWVvdXQgaXMgbm90IHByb3Zp
ZGVkIG9yIGlzIHVuZGVmaW5lZCB0aGVuIGxldCB0IGJlICtpbmYuIE90aGVyd2lzZToKLSAgICAv
LyAgICAgYS4gTGV0IHEgYmUgPyBUb051bWJlcih0aW1lb3V0KS4KLSAgICAvLyAgICAgYi4gSWYg
cSBpcyBOYU4gdGhlbiBsZXQgdCBiZSAraW5mLCBvdGhlcndpc2UgbGV0IHQgYmUgbWF4KDAsIHEp
LgotICAgIC8vCi0gICAgLy8gY2FsbEZyYW1lLT5hcmd1bWVudCgzKSByZXR1cm5zIHVuZGVmaW5l
ZCBpZiBpdCdzIG5vdCBwcm92aWRlZCBhbmQgVG9OdW1iZXIodW5kZWZpbmVkKSByZXR1cm5zIE5h
TiwKLSAgICAvLyBzbyBOYU4gaXMgdGhlIG9ubHkgc3BlY2lhbCBjYXNlLgotICAgIGlmICghc3Rk
Ojppc25hbih0aW1lb3V0KSkKLSAgICAgICAgdGltZW91dCA9IHN0ZDo6bWF4KDBfcywgdGltZW91
dCk7Ci0gICAgZWxzZQotICAgICAgICB0aW1lb3V0ID0gU2Vjb25kczo6aW5maW5pdHkoKTsKLSAg
ICAKKwogICAgIGJvb2wgZGlkUGFzc1ZhbGlkYXRpb24gPSBmYWxzZTsKICAgICBQYXJraW5nTG90
OjpQYXJrUmVzdWx0IHJlc3VsdDsKICAgICB7CkBAIC00MjcsNDEgKzQ0NSwzOCBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWl0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0s
IHJlc3VsdFN0cmluZykpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1
bmNXYWtlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jTm90aWZ5LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgCi0gICAgSlNJbnQzMkFycmF5KiB0eXBlZEFycmF5ID0ganNEeW5h
bWljQ2FzdDxKU0ludDMyQXJyYXkqPih2bSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7Ci0gICAg
aWYgKCF0eXBlZEFycmF5KSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJUeXBlZCBhcnJheSBmb3Igd2FpdC93YWtlIG11c3QgYmUgYW4gSW50MzJBcnJheS4i
X3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAg
IH0KLSAgICAKLSAgICBpZiAoIXR5cGVkQXJyYXktPmlzU2hhcmVkKCkpIHsKLSAgICAgICAgdGhy
b3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L3dh
a2UgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9CiAKLSAgICB1bnNpZ25lZCBhY2Nl
c3NJbmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4KHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZS0+YXJndW1lbnQoMSksIHR5cGVkQXJyYXkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7Ci0gICAgCi0gICAgaW50MzJfdCog
cHRyID0gdHlwZWRBcnJheS0+dHlwZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4OwotICAgIAorICAg
IGF1dG8qIHR5cGVkQXJyYXlCdWZmZXIgPSB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5PFR5cGVk
QXJyYXlPcGVyYXRpb25Nb2RlOjpXcml0ZT4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8q
IHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNJbnQzMkFycmF5Kj4odHlwZWRBcnJheUJ1ZmZlcik7CisK
KyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNjZXNzKHZtLCBnbG9i
YWxPYmplY3QsIHR5cGVkQXJyYXksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKICAgICBKU1ZhbHVlIGNvdW50VmFsdWUgPSBj
YWxsRnJhbWUtPmFyZ3VtZW50KDIpOwogICAgIHVuc2lnbmVkIGNvdW50ID0gVUlOVF9NQVg7CiAg
ICAgaWYgKCFjb3VudFZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgaW50MzJfdCBjb3Vu
dEludCA9IGNvdW50VmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAg
ICAgICBjb3VudCA9IHN0ZDo6bWF4KDAsIGNvdW50SW50KTsKKyAgICAgICAgZG91YmxlIGNvdW50
SW50ID0gY291bnRWYWx1ZS50b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CisgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGRvdWJsZSBjb3Vu
dERvdWJsZSA9IHN0ZDo6bWF4KDAuMCwgY291bnRJbnQpOworICAgICAgICBpZiAoY291bnREb3Vi
bGUgPCBVSU5UX01BWCkKKyAgICAgICAgICAgIGNvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGNvdW50RG91YmxlKTsKICAgICB9CiAKKyAgICBpZiAoIXR5cGVkQXJyYXktPmlzU2hhcmVkKCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworCisgICAgaW50
MzJfdCogcHRyID0gdHlwZWRBcnJheS0+dHlwZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4OwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoUGFya2luZ0xvdDo6dW5wYXJrQ291bnQo
cHRyLCBjb3VudCkpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5j
WG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgWG9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkpOwogfQogCiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oImZyYW1lLWFkZHJlc3MiKQpAQCAtNDcyLDcgKzQ4Nyw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSks
IEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAg
cmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFk
ZEZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBBZGRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXRvbWljc0FuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgb3BlcmFuZCkpCkBAIC00ODEsNyArNDk2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGcKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNW
YWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgQW5kRnVu
YygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3Qs
IGFyZ3MsIEFuZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BdG9taWNzQ29tcGFyZUV4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBleHBlY3RlZCwgRW5jb2RlZEpTVmFsdWUgbmV3VmFsdWUpKQpAQCAt
NDkwLDcgKzUwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNz
Q29tcGFyZUV4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFy
Z3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpT
VmFsdWU6OmRlY29kZShleHBlY3RlZCksIEpTVmFsdWU6OmRlY29kZShuZXdWYWx1ZSl9OwotICAg
IHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBD
b21wYXJlRXhjaGFuZ2VGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUo
dm0sIGdsb2JhbE9iamVjdCwgYXJncywgQ29tcGFyZUV4Y2hhbmdlRnVuYygpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NFeGNoYW5nZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCkBAIC00OTks
NyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NFeGNo
YW5nZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1td
ID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1
ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Mo
dm0sIGdsb2JhbE9iamVjdCwgYXJncywgRXhjaGFuZ2VGdW5jKCkpOworICAgIHJldHVybiBhdG9t
aWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgRXhjaGFuZ2VGdW5jKCkp
OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0lzTG9ja0Zy
ZWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgc2l6ZSkpCkBAIC01MTYsNyArNTMxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkF0b21pY3NMb2FkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVl
OjpkZWNvZGUoaW5kZXgpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0s
IGdsb2JhbE9iamVjdCwgYXJncywgTG9hZEZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRN
b2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBMb2FkRnVuYygpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NPciwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCkBAIC01MjUsNyArNTQw
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NPciwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pT
VmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVj
b2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGds
b2JhbE9iamVjdCwgYXJncywgT3JGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5
V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgT3JGdW5jKCkpOwogfQogCiBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N0b3JlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTUzNCw3ICs1NDksNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N0b3JlLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1
ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUo
b3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBTdG9yZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlX
cml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBTdG9yZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTU0Myw3ICs1NTgsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N1YiwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1
ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUo
b3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBTdWJGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3Jp
dGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgU3ViRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NYb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFs
dWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpAQCAtNTUyLDcgKzU2Nyw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzWG9yLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpk
ZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVy
YW5kKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmpl
Y3QsIGFyZ3MsIFhvckZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBYb3JGdW5jKCkpOwogfQogCiBJR05PUkVfV0FSTklOR1Nf
RU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuaAppbmRleCBkOTViZDliZjY0ZGZlMzBhNDRjNDIyYjIyMzkyNGMxYWJhMzlmY2Q1Li5jMGZh
MjI4NzY0NDQxYWQ2YTYzYTRlMDZkY2YwNGNiNWE0N2FiOWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNkZWZpbmUgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUobWFj
cm8pIFwKICAgICBtYWNybyhBcnJheSkgXAogICAgIG1hY3JvKEFycmF5QnVmZmVyKSBcCisgICAg
bWFjcm8oQXRvbWljcykgXAogICAgIG1hY3JvKEJZVEVTX1BFUl9FTEVNRU5UKSBcCiAgICAgbWFj
cm8oQmlnSW50KSBcCiAgICAgbWFjcm8oQm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKaW5kZXggODk2YzFjY2RhN2RjODQwMDU4MGY1MjY2MzEx
MjU4YzQ0YTM2N2I3YS4uMjcyNTNlMzQ5ZWIwZDIyZjBhZmIyZjMwMzY3MTAxYzQ0ZjhiNDBkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCkBAIC0yNjEs
NiArMjYxLDggQEAgY29uc3QgY2hhciogaW50cmluc2ljTmFtZShJbnRyaW5zaWMgaW50cmluc2lj
KQogICAgICAgICByZXR1cm4gIkF0b21pY3NJc0xvY2tGcmVlSW50cmluc2ljIjsKICAgICBjYXNl
IEF0b21pY3NMb2FkSW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkF0b21pY3NMb2FkSW50cmlu
c2ljIjsKKyAgICBjYXNlIEF0b21pY3NOb3RpZnlJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAi
QXRvbWljc05vdGlmeUludHJpbnNpYyI7CiAgICAgY2FzZSBBdG9taWNzT3JJbnRyaW5zaWM6CiAg
ICAgICAgIHJldHVybiAiQXRvbWljc09ySW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NTdG9y
ZUludHJpbnNpYzoKQEAgLTI2OSw4ICsyNzEsNiBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1l
KEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiQXRvbWljc1N1YkludHJpbnNp
YyI7CiAgICAgY2FzZSBBdG9taWNzV2FpdEludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJBdG9t
aWNzV2FpdEludHJpbnNpYyI7Ci0gICAgY2FzZSBBdG9taWNzV2FrZUludHJpbnNpYzoKLSAgICAg
ICAgcmV0dXJuICJBdG9taWNzV2FrZUludHJpbnNpYyI7CiAgICAgY2FzZSBBdG9taWNzWG9ySW50
cmluc2ljOgogICAgICAgICByZXR1cm4gIkF0b21pY3NYb3JJbnRyaW5zaWMiOwogICAgIGNhc2Ug
UGFyc2VJbnRJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNp
Yy5oCmluZGV4IGIzOWM1NjUxMDQ1MWMxMmU5YWZiZDlmMjg5YTg1YmEzYjcwZDdjNDYuLjVjZjI1
MGU5NzEzNDdiMjU2NDhlYTZjNmQxZGI3NWQ5NTI1YTgxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC0xNDYsMTEgKzE0NiwxMSBAQCBlbnVtIEludHJp
bnNpYyA6IHVpbnQ4X3QgewogICAgIEF0b21pY3NFeGNoYW5nZUludHJpbnNpYywKICAgICBBdG9t
aWNzSXNMb2NrRnJlZUludHJpbnNpYywKICAgICBBdG9taWNzTG9hZEludHJpbnNpYywKKyAgICBB
dG9taWNzTm90aWZ5SW50cmluc2ljLAogICAgIEF0b21pY3NPckludHJpbnNpYywKICAgICBBdG9t
aWNzU3RvcmVJbnRyaW5zaWMsCiAgICAgQXRvbWljc1N1YkludHJpbnNpYywKICAgICBBdG9taWNz
V2FpdEludHJpbnNpYywKLSAgICBBdG9taWNzV2FrZUludHJpbnNpYywKICAgICBBdG9taWNzWG9y
SW50cmluc2ljLAogICAgIFBhcnNlSW50SW50cmluc2ljLAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwCmluZGV4
IDNkMzYxODdjYjhjYjc2MTg1NDU0MTYwNjc3NTllNGMyNjkzZGRiNjEuLjBlYmMxZGM2MmE3ODA1
ZGVlYTEyOWI3MmI2MWYxMTdjNzhhZWZlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwCkBAIC0zMyw2ICsz
Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlKTsK
IHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9H
ZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUJ1
ZmZlclByb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQpAQCAtODMsNiArODQsMzYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRoaXNPYmplY3QtPmltcGwoKS0+Ynl0ZUxlbmd0aCgpKSkpOwogfQogCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworCisgICAgSlNBcnJheUJ1ZmZlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNBcnJheUJ1ZmZlcio+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIXRo
aXNPYmplY3QgfHwgIXRoaXNPYmplY3QtPmltcGwoKS0+aXNTaGFyZWQoKSkKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlY2VpdmVyIG9mIHNs
aWNlIG11c3QgYmUgYW4gU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKKworICAgIGRvdWJsZSBiZWdp
biA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisKKyAgICBkb3Vi
bGUgZW5kOworICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpKSB7
CisgICAgICAgIGVuZCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnRlZ2Vy
KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOworICAgIH0gZWxzZQorICAgICAgICBlbmQgPSB0aGlzT2JqZWN0LT5pbXBs
KCktPmJ5dGVMZW5ndGgoKTsKKworICAgIGF1dG8gbmV3QnVmZmVyID0gdGhpc09iamVjdC0+aW1w
bCgpLT5zbGljZShiZWdpbiwgZW5kKTsKKyAgICBpZiAoIW5ld0J1ZmZlcikKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSkpOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFycmF5
QnVmZmVyU3RydWN0dXJlKG5ld0J1ZmZlci0+c2hhcmluZ01vZGUoKSk7CisKKyAgICBKU0FycmF5
QnVmZmVyKiByZXN1bHQgPSBKU0FycmF5QnVmZmVyOjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgV1RG
TW92ZShuZXdCdWZmZXIpKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
K30KKwogLy8gaHR0cDovL3RjMzkuZ2l0aHViLmlvL2VjbWFzY3JpcHRfc2hhcmVkbWVtL3NobWVt
Lmh0bWwjU3RydWN0dXJlZERhdGEuU2hhcmVkQXJyYXlCdWZmZXIucHJvdG90eXBlLmdldF9ieXRl
TGVuZ3RoCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlCdWZmZXJQcm90b0dl
dHRlckZ1bmNCeXRlTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewpAQCAtMTE0LDEyICsxNDUsMTQgQEAgdm9pZCBKU0FycmF5QnVm
ZmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgCi0gICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2xp
Y2UsIGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZt
LCBhcnJheUJ1ZmZlclNoYXJpbmdNb2RlTmFtZShzaGFyaW5nTW9kZSkpLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIGlmIChz
aGFyaW5nTW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0KQorICAgIGlmIChz
aGFyaW5nTW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0KSB7CisgICAgICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PnNsaWNlLCBhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiAgICAgICAgIEpTQ19OQVRJVkVfR0VU
VEVSX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5ieXRlTGVuZ3RoLCBhcnJh
eUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Ci0gICAgZWxzZQorICAgIH0gZWxz
ZSB7CisgICAgICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPnNsaWNlLCBzaGFyZWRBcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiAgICAg
ICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5ieXRlTGVuZ3RoLCBzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgs
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSk7CisgICAgfQogfQogCiBKU0FycmF5QnVmZmVyUHJvdG90eXBlKiBKU0FycmF5QnVmZmVyUHJv
dG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRleCBiNWE5YmI5MzY5
ZjUxNmQ0ZTM1OTk0NTQwZDFhNGY4OTkxYTkyMjRlLi4yZWIyYWI2M2ZiYzA3MjQ0NDlhNzVmZmU1
MzBlY2IxYTZhYjA1NTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5oCkBAIC0yOTQsNiArMjk0LDcgQEAgY2xhc3MgSlNWYWx1ZSB7CiAgICAgLy8gSW50ZWdl
ciBjb252ZXJzaW9ucy4KICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgdG9JbnRlZ2VyKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHRvSW50
ZWdlclByZXNlcnZlTmFOKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgZG91YmxlIHRvSW50
ZWdlck9ySW5maW5pdHkoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBpbnQzMl90IHRvSW50
MzIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICB1aW50MzJfdCB0b1VJbnQzMihKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OwogICAgIHVpbnQzMl90IHRvSW5kZXgoSlNHbG9iYWxPYmplY3QqLCBj
b25zdCBjaGFyKiBlcnJvck5hbWUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggZmQ2ODJiYmI2Mzk1NjhkZmVkMjVl
NGRhYTRhYzFkYWI5NzkyNmVlZi4uZmMxODIzNTM5NTQ3OTk0YjMyMDE3MzIwZjJlOGU4ZjhhODZm
YTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oCkBAIC03OSw2ICs3OSwxOSBAQCBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dG9J
bmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBjaGFyKiBlcnJvcgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNDOjp0b0ludDMyKGQpKTsKIH0KIAorLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2ludGVnZXJvcmluZmluaXR5CitpbmxpbmUgZG91
YmxlIEpTVmFsdWU6OnRvSW50ZWdlck9ySW5maW5pdHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkgY29uc3QKK3sKKyAgICBpZiAoaXNJbnQzMigpKQorICAgICAgICByZXR1cm4gYXNJbnQz
MigpOworICAgIGRvdWJsZSBkID0gdG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoc3Rk
Ojppc25hbihkKSB8fCBkID09IDApCisgICAgICAgIHJldHVybiAwLjA7CisgICAgaWYgKHN0ZDo6
aXNpbmYoZCkpCisgICAgICAgIHJldHVybiBkOworICAgIHJldHVybiB0cnVuYyhkKTsKK30KKwog
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAogewogICAgIHJldHVybiBpc0lu
dDMyKCkgJiYgYXNJbnQzMigpID49IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVGdW5jdGlvbnMuaAppbmRleCAwY2NmYTAwMWE2ZjdjNDU5MThkYzAzZWY2OGU5YzRmZDQy
YzNmOGZhLi5mZjRjMDAyY2FiZDhmZTEzZmUzODA5OGY5YWIyNWE4Yjc0NDFkZWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTM4OCw3ICsz
ODgsNiBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoVk0mLAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgogQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNSZXZlcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiB7Ci0vLyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIC8vIDIy
LjIuMy4yMQpAQCAtNDA1LDcgKzQwNCw2IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShWTSYgdm0sIEpTR2xvCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdl
bmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotLy8gICAgVk0mIHZtID0g
Z2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICAvLyAyMi4yLjMuMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4NDhlNDAxNmJmNjExOGJiY2QwYWI2ZjA4
NzI5MzI5MjI4NTc0ODE2Li5iNWM1ZjE0NzA4ODYxMjY4ZjA5NDE5ZWI1MmRjZjU5Nzk0NjdmNGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblBy
b3RvdHlwZS5oIgogI2luY2x1ZGUgIkFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIkF0b21pY3NPYmplY3QuaCIK
ICNpbmNsdWRlICJCaWdJbnRDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJpZ0ludE9iamVjdC5o
IgogI2luY2x1ZGUgIkJpZ0ludFByb3RvdHlwZS5oIgpAQCAtODI4LDEwICs4MjksMTIgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAgIFtdIChjb25zdCBJbml0aWFs
aXplcjxKU0Z1bmN0aW9uPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlv
bjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIDEsIGluaXQudm0ucHJvcGVydHlOYW1lcy0+
cGFyc2VGbG9hdC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQsIE5vSW50cmluc2ljKSk7
CiAgICAgICAgIH0pOwotICAgIAorCiAjaWYgRU5BQkxFKFNIQVJFRF9BUlJBWV9CVUZGRVIpCi0g
ICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTQXJyYXlCdWZm
ZXJQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIEFycmF5QnVm
ZmVyU2hhcmluZ01vZGU6OlNoYXJlZCkpOwotICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1
cmUuc2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBpZiAoT3B0aW9uczo6
dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBtX3NoYXJlZEFycmF5QnVmZmVyUHJv
dG90eXBlLnNldCh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0
aGlzLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6U2hhcmVkKSk7
CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0Fy
cmF5QnVmZmVyOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fc2hhcmVkQXJyYXlCdWZmZXJQ
cm90b3R5cGUuZ2V0KCkpKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIG1faXRlcmF0b3JQcm90b3R5
cGUuc2V0KHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBJdGVy
YXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpKTsKQEAgLTg5OSwxMCArOTAyLDEzIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6Omlu
aXQoVk0mIHZtKQogICAgIAogI2lmIEVOQUJMRShTSEFSRURfQVJSQVlfQlVGRkVSKQogICAgIEpT
U2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciogc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
ciA9IG51bGxwdHI7Ci0gICAgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA9IEpTU2hhcmVk
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1NoYXJlZEFycmF5QnVmZmVyQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCksIG1fc3BlY2llc0dldHRl
clNldHRlci5nZXQoKSk7Ci0gICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS0+cHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBz
aGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgQXRvbWljc09iamVjdCogYXRvbWljc09iamVj
dCA9IG51bGxwdHI7CisgICAgaWYgKE9wdGlvbnM6OnVzZVNoYXJlZEFycmF5QnVmZmVyKCkpIHsK
KyAgICAgICAgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA9IEpTU2hhcmVkQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1NoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1f
c2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCksIG1fc3BlY2llc0dldHRlclNldHRlci5n
ZXQoKSk7CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUtPnB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwgc2hhcmVk
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogCi0gICAgQXRvbWljc09iamVjdCogYXRvbWljc09iamVjdCA9
IEF0b21pY3NPYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgQXRvbWljc09iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOworICAgICAgICBhdG9t
aWNzT2JqZWN0ID0gQXRvbWljc09iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBBdG9taWNzT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7Cisg
ICAgfQogI2VuZGlmCiAKICNkZWZpbmUgQ1JFQVRFX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQ
RShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFt
ZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKQEAgLTk4Miw4ICs5ODgsMTAgQEAgY2Fw
aXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1
cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+UmVnRXhwLCByZWdFeHBDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCiAjaWYgRU5BQkxFKFNI
QVJFRF9BUlJBWV9CVUZGRVIpCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPlNoYXJlZEFycmF5QnVmZmVyLCBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJBdG9taWNzIiksIGF0b21pY3NPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBpZiAoT3B0aW9uczo6dXNlU2hh
cmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+U2hhcmVkQXJyYXlCdWZmZXIsIHNoYXJlZEFycmF5QnVmZmVy
Q29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPkF0b21pY3MsIGF0b21pY3NPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICB9CiAjZW5kaWYKIAogI2RlZmluZSBQ
VVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHBy
b3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxh
ZykgXApAQCAtMTIxNCw5ICsxMjIyLDE1IEBAIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yKiBs
b3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0YWxOYW1lCiAgICAg
bV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFu
dDo6aXNUeXBlZEFycmF5VmlldyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlND
ZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGlu
aXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcsIElzVHlwZWRBcnJheVZp
ZXdJbnRyaW5zaWMpKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6aXNTaGFyZWRUeXBlZEFycmF5Vmll
dyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgeworICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzU2hhcmVkVHlwZWRBcnJheVZpZXcpKTsKKyAgICAgICAgfSk7CiAgICAgbV9saW5r
VGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6aXNE
ZXRhY2hlZCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkg
ewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQpKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNv
bnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6dHlwZWRBcnJh
eURlZmF1bHRDb21wYXJhdG9yKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0Nl
bGw+JiBpbml0KSB7CisgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5p
dC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygpLCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IpKTsKKyAgICAgICAgfSk7
CiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVD
b25zdGFudDo6dHlwZWRBcnJheVN1YmFycmF5Q3JlYXRlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJ
bml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0
aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciks
IDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpKTsK
ICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IDQ3MDMwMjllNmNjMjg5M2Qx
ZDRiMGNjNTU2ZWU1ZmQ1OTFiMDFhZTQuLmJmYjczMjlkNjBjOWIxZTQwZTBmMjIzOTdmOTJmYzdm
MGQ2MzE5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1
ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtODUsNiArODYsMTYgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVk
QXJyYXlWaWV3LCAoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbih2YWx1ZS5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyh2YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJ
bmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpKTsKIH0KIAor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1NoYXJl
ZFR5cGVkQXJyYXlWaWV3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApOworICAgIGlmICghdmFsdWUuaXNDZWxsKCkpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CisgICAgaWYgKCFpc1R5cGVkVmlldyh2
YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZh
bHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNDYXN0PEpTQXJy
YXlCdWZmZXJWaWV3Kj4odmFsdWUpLT5pc1NoYXJlZCgpKSk7Cit9CisKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hlZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1Zh
bHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKQEAgLTkyLDYg
KzEwMyw1OCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0lzRGV0YWNoZWQsIChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KGFyZ3VtZW50KS0+aXNE
ZXRhY2hlZCgpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK3sKKyAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0
eXBlZGFycmF5JS5wcm90b3R5cGUuc29ydAorCisgICAgSlNWYWx1ZSB4ID0gY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIHkgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpOworCisgICAgaWYgKHguaXNOdW1iZXIoKSkgeworICAgICAgICBBU1NFUlQo
eS5pc051bWJlcigpKTsKKyAgICAgICAgaWYgKHguaXNJbnQzMigpICYmIHkuaXNJbnQzMigpKSB7
CisgICAgICAgICAgICBpbnQzMl90IHhJbnQzMiA9IHguYXNJbnQzMigpOworICAgICAgICAgICAg
aW50MzJfdCB5SW50MzIgPSB5LmFzSW50MzIoKTsKKyAgICAgICAgICAgIGlmICh4SW50MzIgPCB5
SW50MzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigt
MSkpOworICAgICAgICAgICAgaWYgKHhJbnQzMiA+IHlJbnQzMikKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworICAgICAgICB9CisKKyAgICAgICAgZG91Ymxl
IHhEb3VibGUgPSB4LmFzTnVtYmVyKCk7CisgICAgICAgIGRvdWJsZSB5RG91YmxlID0geS5hc051
bWJlcigpOworICAgICAgICBpZiAoc3RkOjppc25hbih4RG91YmxlKSAmJiBzdGQ6OmlzbmFuKHlE
b3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7
CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHhEb3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcigxKSk7CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHlEb3Vi
bGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtMSkpOwor
ICAgICAgICBpZiAoeERvdWJsZSA8IHlEb3VibGUpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgIGlmICh4RG91YmxlID4geURvdWJsZSkK
KyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOworICAgICAg
ICBpZiAoeERvdWJsZSA9PSAwICYmIHlEb3VibGUgPT0gMCkgeworICAgICAgICAgICAgaWYgKHN0
ZDo6c2lnbmJpdCh4RG91YmxlKSAmJiAhc3RkOjpzaWduYml0KHlEb3VibGUpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICAgICAgICAg
IGlmICghc3RkOjpzaWduYml0KHhEb3VibGUpICYmIHN0ZDo6c2lnbmJpdCh5RG91YmxlKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKTsKKyAgICB9
CisgICAgQVNTRVJUKHguaXNCaWdJbnQoKSAmJiB5LmlzQmlnSW50KCkpOworICAgIHN3aXRjaCAo
Y29tcGFyZUJpZ0ludCh4LCB5KSkgeworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1
bHQ6OkVxdWFsOgorICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OlVuZGVmaW5l
ZDoKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgY2Fz
ZSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW46CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBh
cmlzb25SZXN1bHQ6Okxlc3NUaGFuOgorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKC0xKSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
MCkpOworfQorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlLmgKaW5kZXggNmNkN2IyYTBkNGRjMWM5YjJlOTUzN2JmMjdhYWEwODI3ZDc4Yjc1MC4uZDM1
MzBmZjZkNjE0ZWZlMGQyMjEyN2MzOGY5NjkwYzJjY2YyMGVmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
aApAQCAtNTIsNyArNTIsOSBAQCBjbGFzcyBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogfTsKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5Vmlldyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1NoYXJlZFR5cGVk
QXJyYXlWaWV3KTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzRGV0YWNoZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5
Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7CiBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgpOwogSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rv
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCAy
MjVlMjI0ODNkMDlhYzIwM2JjYmVmZTVjYmE4ZDc1MmYwYWZlMDcyLi5mZTQzNTJiNGY2YzkzMGE4
MTFkNDZhNmFkZGMzZGUzMTkxNmVkMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnNMaXN0LmgKQEAgLTQ5NCw2ICs0OTQsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBi
b29sIGNhblVzZUpJVENhZ2UoKTsKICAgICB2KEJvb2wsIHVzZVdlYWtSZWZzLCB0cnVlLCBOb3Jt
YWwsICJFeHBvc2UgdGhlIFdlYWtSZWYgY29uc3RydWN0b3IuIikgXAogICAgIHYoQm9vbCwgdXNl
SW50bERhdGVUaW1lRm9ybWF0RGF5UGVyaW9kLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIElu
dGwuRGF0ZVRpbWVGb3JtYXQgZGF5UGVyaW9kIGZlYXR1cmUuIikgXAogICAgIHYoQm9vbCwgdXNl
QXRNZXRob2QsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIGF0KCkgbWV0aG9kIG9uIEFycmF5
IGFuZCAlVHlwZWRBcnJheSUuIikgXAorICAgIHYoQm9vbCwgdXNlU2hhcmVkQXJyYXlCdWZmZXIs
IHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlQXJyYXlBbGxvY2F0aW9u
UHJvZmlsaW5nLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIHVzZSBvdXIgbm9ybWFs
IGFycmF5IGFsbG9jYXRpb24gcHJvZmlsaW5nLiBJZiBmYWxzZSwgdGhlIGFsbG9jYXRpb24gcHJv
ZmlsZSB3aWxsIGFsd2F5cyBjbGFpbSB0byBiZSB1bmRlY2lkZWQuIikgXAogICAgIHYoQm9vbCwg
Zm9yY2VQb2x5UHJvdG8sIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBjcmVhdGVfdGhpcyB3aWxs
IGFsd2F5cyBjcmVhdGUgYW4gb2JqZWN0IHdpdGggYSBwb2x5IHByb3RvIHN0cnVjdHVyZS4iKSBc
CiAgICAgdihCb29sLCBmb3JjZU1pbmlWTU1vZGUsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBp
dCB3aWxsIGZvcmNlIG1pbmkgVk0gbW9kZSBvbi4iKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAK
aW5kZXggMDI1ZjRhYjkwMDlmNjc4ODRhYzZlYTA1NmQzNGIxY2Y0OGYzZjJmYS4uZWYxNjI2MjE3
NmFmZjA1NDI5MTc2ZmU3ZDVjODAyNGUwMzU5ZDk4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNw
cApAQCAtMzMsNyArMzMsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVNpbXBsZVR5cGVkQXJy
YXlDb250cm9sbGVyOjpTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpIHsgfQorU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKGJvb2wgYWxsb3dB
dG9taWNzV2FpdCkKKyAgICA6IG1fYWxsb3dBdG9taWNzV2FpdChhbGxvd0F0b21pY3NXYWl0KQor
eworfQorCiBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6flNpbXBsZVR5cGVkQXJyYXlDb250
cm9sbGVyKCkgeyB9CiAKIEpTQXJyYXlCdWZmZXIqIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVy
Ojp0b0pTKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBBcnJheUJ1ZmZlciogbmF0aXZlKQpAQCAtNTUsNyArNTksNyBAQCB2
b2lkIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpyZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxP
YmplY3QqLCBBcnJheUJ1ZmZlciogbgogCiBib29sIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVy
Ojppc0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVhZCgpCiB7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIG1fYWxsb3dBdG9taWNzV2FpdDsKIH0KIAogYm9vbCBTaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIu
aAppbmRleCBmN2U1MGJmYjNkMTBjNzIyNzE1OGJiYWFmMTRkYTU5OTRkYTk3ZmUyLi4yMTljYWY0
MjYzMGUxNzM1YTE1YzkxNGRkYTVjZGFhMzRkYjY4MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFNpbXBsZVR5cGVkQXJy
YXlDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFR5cGVkQXJyYXlDb250cm9sbGVyIHsKIHB1Ymxp
YzoKLSAgICBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKGJvb2wgYWxsb3dBdG9taWNzV2FpdCA9IHRy
dWUpOwogICAgIH5TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpIGZpbmFsOwogICAgIAogICAg
IEpTQXJyYXlCdWZmZXIqIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIEFy
cmF5QnVmZmVyKikgZmluYWw7CkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIFNpbXBsZVR5cGVkQXJy
YXlDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFR5cGVkQXJyYXlDb250cm9sbGVyIHsKICAgICB9
OwogCiAgICAgSlNBcnJheUJ1ZmZlck93bmVyIG1fb3duZXI7CisgICAgYm9vbCBtX2FsbG93QXRv
bWljc1dhaXQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FbmFibGUuaAppbmRleCA3NmFkMjM1OWExYTdiMzRlZjg5OWQ0MmIyZWM2ZTRkMTBiM2RjMjhk
Li4wNWJkNjgwY2FlNjc1MjRhZjQ5ZGU1OTc2ZDk4Njk0MDg1MWIwOWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgKQEAgLTgzMCw3ICs4MzAsNyBAQAogI2VuZGlmCiAKIC8qIERpc2FibGUgU2hh
cmVkQXJyYXlCdWZmZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJpdHkgY29uY2VybnMgYXJlIG1pdGln
YXRlZC4gKi8KLSNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZGRVIgMAorI2RlZmluZSBF
TkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAxCiAKIAogI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8
IFBMQVRGT1JNKFBMQVlTVEFUSU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKSkgfHwgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI1NzVhNDFmZmNiNTVjNjEzOGJmYmExZTQ5NDYzZGEw
MmZlNjIxMDIuLjVkYTM0ZDYxN2M3YjIwYWI4ZmRhZDgwOTE4NDgzZWI1YWM1OGUxMWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtOgor
ICAgICAgICAoZ2V0RmVhdHVyZUZsYWdzKToKKwogMjAyMC0xMS0wNCAgSm9uYXRoYW4gQmVkYXJk
ICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBBZGQgY2hlY2tv
dXQgY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbSBi
L1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9SdW5uZXIucG0KaW5kZXggZTIzNmQwNThhMTQ4ZjlhYjAz
ZGM1ZDdlODYxYzJiOWQzMjM4ZmNkOC4uZmIxZTQ1N2U4ZTk5ZTRiMDUyNjhiNDFhMzlmOWE5ZGFi
YzY3MzJlNyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbQorKysg
Yi9Ub29scy9TY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtCkBAIC03MDMsNiArNzAzLDEwIEBAIHN1
YiBnZXRGZWF0dXJlRmxhZ3MgewogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGdyZXAgJF8g
ZXEgJ0NhbkJsb2NrSXNGYWxzZScsIEB7JGRhdGEtPntmbGFnc319KSB7CisgICAgICAgICRmZWF0
dXJlRmxhZ3MgLj0gJyAtLWNhbi1ibG9jay1pcy1mYWxzZSc7CisgICAgfQorCiAgICAgcmV0dXJu
ICRmZWF0dXJlRmxhZ3M7CiB9CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmE0ZjlhNjliN2Y4MzNlYzZjYmFjOTI5ZWUzNzJmNDc1NDcy
NmM4Yy4uZWRjZDQzN2QxYTkxMjE0ZWQyNjg4NzIwNGU3OTk5MDI5ZTRlN2RiNiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXItb3B0
LmpzOgorICAgICAgICAqIHN0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qczoKKyAgICAgICAgKFN5
bWJvbCk6CisgICAgICAgICogc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qczoKKyAg
ICAgICAgKiBzdHJlc3MvYXRvbWljcy1hZGQtdWludDMyLmpzOgorICAgICAgICAqIHN0cmVzcy9h
dG9taWNzLWtub3duLWludC11c2UuanM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3MtbmVnLXpl
cm8uanM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzOgorICAgICAg
ICAqIHN0cmVzcy9sYXJzLXNhYi13b3JrZXJzLmpzOgorICAgICAgICAocmVzb3VyY2VzKToKKyAg
ICAgICAgKG5vdGlmeSk6CisgICAgICAgICh3YWtlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJl
c3MvcmVncmVzcy0xNTk3NzktMS5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNTk3Nzkt
Mi5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNzA0NzMuanM6CisgICAgICAgICogc3Ry
ZXNzL3NoYXJlZC1hcnJheS1idWZmZXItc29ydC13aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlzLW1v
ZGlmeWluZy5qczogQWRkZWQuCisgICAgICAgICgyNjIuYWdlbnQud2FpdFVudGlsKToKKyAgICAg
ICAgKDI2Mi5hZ2VudC5zdGFydC4yNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdCk6CisgICAgICAg
ICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sOgorCiAyMDIwLTExLTAzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBiYWNrIHRoZSByZW1vdmVkIGFzc2VydGlvbiBmcm9tIHIyNjkzMzggYW5kIGFk
ZCBhIHRlc3QKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9w
dC5qcyBiL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9wdC5qcwppbmRleCA3YjJj
MjdmZjllYTEzZjEyYzVmNGU0OTcxYjZiNjhiY2NmNDAwMTNhLi5lMjQxYTQ4ODgwZDExYmJjNzFh
YjQ0NTkxNWNhNmZmNmQyOTI0NDk3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRB
cnJheUJ1ZmZlci1vcHQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIt
b3B0LmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBkdiA9IG5ldyBEYXRhVmlldyhu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoMTI4KSk7CiB2YXIgaThhID0gbmV3IEludDhBcnJheShuZXcg
U2hhcmVkQXJyYXlCdWZmZXIoMTI4KSk7CiB2YXIgaTE2YSA9IG5ldyBJbnQxNkFycmF5KG5ldyBT
aGFyZWRBcnJheUJ1ZmZlcigxMjgpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL1NoYXJl
ZEFycmF5QnVmZmVyLmpzIGIvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIuanMKaW5k
ZXggM2IyNjlhNzY1MGZhYWI3ZDljMTBiNzU3NWUwZTRlZWNkMGQ2Y2ZiMy4uZGJkZjMyYzU2NjEz
MTljNDFmMGFjNjBlYmRiNWU1YzVhMDU0NDJiMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
U2hhcmVkQXJyYXlCdWZmZXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZm
ZXIuanMKQEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAogLy8gVGhpcyBpcyBhIGJhc2ljIHRlc3Qg
b2YgU2hhcmVkQXJyYXlCdWZmZXIgQVBJIGFzIHdlIHVuZGVyc3RhbmQgaXQuCiAKIGlmIChTaGFy
ZWRBcnJheUJ1ZmZlciA9PSBBcnJheUJ1ZmZlcikKQEAgLTM1LDExICszNCwxMSBAQCBmdW5jdGlv
biBjaGVja0F0b21pY3MobmFtZSwgY291bnQpCiBjaGVja0F0b21pY3MoImV4Y2hhbmdlIiwgMyk7
CiBjaGVja0F0b21pY3MoImlzTG9ja0ZyZWUiLCAxKTsKIGNoZWNrQXRvbWljcygibG9hZCIsIDIp
OworY2hlY2tBdG9taWNzKCJub3RpZnkiLCAzKTsKIGNoZWNrQXRvbWljcygib3IiLCAzKTsKIGNo
ZWNrQXRvbWljcygic3RvcmUiLCAzKTsKIGNoZWNrQXRvbWljcygic3ViIiwgMyk7CiBjaGVja0F0
b21pY3MoIndhaXQiLCA0KTsKLWNoZWNrQXRvbWljcygid2FrZSIsIDMpOwogY2hlY2tBdG9taWNz
KCJ4b3IiLCAzKTsKIAogLy8gVGhlc2Ugc2hvdWxkIGFsbCBzdWNjZWVkLgpAQCAtNzksOCArNzgs
OCBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiB9CiAKIGZvciAoYmFkIG9mIFt2b2lk
IDAsIG51bGwsIGZhbHNlLCB0cnVlLCAxLCAwLjUsIFN5bWJvbCgpLCB7fSwgImhlbGxvIiwgZHYs
IGk4YSwgaTE2YSwgdThhLCB1OGNhLCB1MTZhLCB1MzJhLCBmMzJhLCBmNjRhXSkgeworICAgIHNo
b3VsZEZhaWwoKCkgPT4gQXRvbWljcy5ub3RpZnkoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKICAg
ICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3Mud2FpdChiYWQsIDAsIDApLCBUeXBlRXJyb3IpOwot
ICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy53YWtlKGJhZCwgMCwgMCksIFR5cGVFcnJvcik7
CiB9CiAKIGZvciAoaWR4IG9mIFstMSwgLTEwMDAwMDAwMDAwMDAsIDEwMDAwLCAxMDAwMDAwMDAw
MDAwMCwgImhlbGxvIl0pIHsKQEAgLTk1LDggKzk0LDggQEAgZnVuY3Rpb24gc2hvdWxkRmFpbChm
LCBuYW1lKQogICAgICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3Muc3ViKGEsIGlkeCwgMCks
IFJhbmdlRXJyb3IpOwogICAgICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3MueG9yKGEsIGlk
eCwgMCksIFJhbmdlRXJyb3IpOwogICAgIH0KKyAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3Mu
bm90aWZ5KGkzMmEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwogICAgIHNob3VsZEZhaWwoKCkgPT4g
QXRvbWljcy53YWl0KGkzMmEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwotICAgIHNob3VsZEZhaWwo
KCkgPT4gQXRvbWljcy53YWtlKGkzMmEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwogfQogCiBmdW5j
dGlvbiBydW5BdG9taWMoYXJyYXksIGluZGV4LCBpbml0LCBuYW1lLCBhcmdzLCBleHBlY3RlZFJl
c3VsdCwgZXhwZWN0ZWRPdXRjb21lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXkt
YnVmZmVyLWJ5dGUtbGVuZ3RoLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLWJ5dGUt
bGVuZ3RoLmpzCmluZGV4IDc4YTcyZjkyMzJjZDA4ZTc1ZWEyNzk0MjE0ZDdjMmY2OTEzMmVlNWYu
LjY0MzM1YzE0OWUyMzRiOTQ5NWZhYTIxZDJhMjExMjNiMzU2OTJhNzcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMKQEAgLTEsNCArMSwzIEBACi0vL0Agc2tp
cAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKIHsKICAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVp
bnQzMi5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVpbnQzMi5qcwppbmRleCA5YjAw
OGUxNTQzOTIzMWYwMzI3Y2ZiYTE5NWRlMzQ2ZTNlNDlhYTZjLi5kOTdkZGRiNDY5NzFjMDFiNjcy
N2VhNjVkNzQ2NGYzOTVhYTg0MWI4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hdG9taWNz
LWFkZC11aW50MzIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1hZGQtdWludDMyLmpz
CkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBzYWIgPSBuZXcgU2hhcmVkQXJyYXlCdWZm
ZXIoNCk7CiB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShzYWIpOwogdmFyIHJlc3VsdCA9IEF0b21p
Y3MuYWRkKGEsIDAsIDQwMDAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXRv
bWljcy1rbm93bi1pbnQtdXNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1rbm93bi1pbnQt
dXNlLmpzCmluZGV4IDgwNzMxZWE3YzgyNGE3ZDJjZmZjNjI5M2E5ZWY1YzI3YjQxZTJlYjIuLjRl
MGE5NmMxNTQzYzJmMDU0YmJkMjRlNjliZmVkNzlmOWIxYzgzNDcgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL2F0b21pY3Mta25vd24taW50LXVzZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9h
dG9taWNzLWtub3duLWludC11c2UuanMKQEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAogLy8gQnJl
YWsgdHlwZSBpbmZlcmVuY2UuCiB2YXIgbyA9IHtmOiA0Mi41fTsKIApkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mt
bmVnLXplcm8uanMKaW5kZXggMGE4ZTUyYzdiZmE4OTIzZDcyNzExNTFhOTE0YjJhZmZiNWIzMDAz
YS4uZjk3YWJmYjU0MzU1ZGUyYjkwNGEwYTZmZWY0ZWVlMGM5YWNhMTgxZiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9h
dG9taWNzLW5lZy16ZXJvLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBzYWIgPSBu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoNCk7CiB2YXIgYSA9IG5ldyBJbnQzMkFycmF5KHNhYik7CiBB
dG9taWNzLmFkZChhLCAtMCwgMSk7IC8vIFRoaXMgc2hvdWxkIG5vdCB0aHJvdy4KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzIGIvSlNUZXN0cy9zdHJl
c3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKaW5kZXggNzg3YTFmZDI0MzE1YTMwYmI4MDQ0NTg2
ZmFiNGVjNzAxNGU4ZGRlMS4uMDgyNTYzZjM0MTBiNzNlYmQ3ZGI2YTMzY2Y1ZTU4MDEwYjcxNWE0
OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKQEAgLTEsNCArMSwzIEBA
Ci0vL0Agc2tpcAogdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcigxKTsKIHZhciBhID0g
bmV3IEludDhBcnJheShzYWIpOwogdmFyIHJlc3VsdCA9IEF0b21pY3Muc3RvcmUoYSwgMCwgMTAw
MCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNhYi13b3JrZXJzLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvbGFycy1zYWItd29ya2Vycy5qcwppbmRleCBiYWU0MDBmNzIwODRlYTI1ZjMx
ZTRiYzQ0NDRjYzMwNTMyY2QyZDMyLi43ZDFjYWRkMzJhZjQ4ZmMwZDQ1Yzk1M2M1MWI4NTRiZjcy
ZTgyOGJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNhYi13b3JrZXJzLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2xhcnMtc2FiLXdvcmtlcnMuanMKQEAgLTEsNSArMSwzIEBACi0v
L0Agc2tpcAotCiB2YXIgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKDEwMCAqIDQpOwogCiB2
YXIgbWVtb3J5ID0gbmV3IEludDMyQXJyYXkoc2FiKTsKQEAgLTE0LDcgKzEyLDcgQEAgZnVuY3Rp
b24gc3RhcnRXb3JrZXIoY29kZSkKIH0KIAogcmVzb3VyY2VzID0gYAotZnVuY3Rpb24gd2FpdCht
ZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCB3YWtlQ29uZGl0aW9uKQorZnVuY3Rpb24gd2Fp
dChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCBub3RpZnlDb25kaXRpb24pCiB7CiAgICAg
d2hpbGUgKG1lbW9yeVtpbmRleF0gPT0gd2FpdENvbmRpdGlvbikgewogICAgICAgICB2YXIgcmVz
dWx0ID0gQXRvbWljcy53YWl0KG1lbW9yeSwgaW5kZXgsIHdhaXRDb25kaXRpb24pOwpAQCAtMjgs
MjMgKzI2LDIzIEBAIGZ1bmN0aW9uIHdhaXQobWVtb3J5LCBpbmRleCwgd2FpdENvbmRpdGlvbiwg
d2FrZUNvbmRpdGlvbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHZh
ciB2YWx1ZSA9IG1lbW9yeVtpbmRleF07Ci0gICAgICAgIGlmICh2YWx1ZSAhPSB3YWtlQ29uZGl0
aW9uKSB7CisgICAgICAgIGlmICh2YWx1ZSAhPSBub3RpZnlDb25kaXRpb24pIHsKICAgICAgICAg
ICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjogd2FpdCByZXR1cm5lZCBub3QtZXF1YWwgYnV0IHRo
ZSBtZW1vcnkgaGFzIGEgYmFkIHZhbHVlOiAiICsgdmFsdWUpOwogICAgICAgICAgICAgJC5hZ2Vu
dC5yZXBvcnQoImVycm9yIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgdmFyIHZhbHVlID0gbWVt
b3J5W2luZGV4XTsKLSAgICBpZiAodmFsdWUgIT0gd2FrZUNvbmRpdGlvbikgeworICAgIGlmICh2
YWx1ZSAhPSBub3RpZnlDb25kaXRpb24pIHsKICAgICAgICAgJC5hZ2VudC5yZXBvcnQoIkVycm9y
OiBkb25lIHdhaXRpbmcgYnV0IHRoZSBtZW1vcnkgaGFzIGEgYmFkIHZhbHVlOiAiICsgdmFsdWUp
OwogICAgICAgICAkLmFnZW50LnJlcG9ydCgiZXJyb3IiKTsKICAgICB9CiB9CiAKLWZ1bmN0aW9u
IHdha2UobWVtb3J5LCBpbmRleCkKK2Z1bmN0aW9uIG5vdGlmeShtZW1vcnksIGluZGV4KQogewot
ICAgIHZhciByZXN1bHQgPSBBdG9taWNzLndha2UobWVtb3J5LCBpbmRleCwgMSk7CisgICAgdmFy
IHJlc3VsdCA9IEF0b21pY3Mubm90aWZ5KG1lbW9yeSwgaW5kZXgsIDEpOwogICAgIGlmIChyZXN1
bHQgIT0gMCAmJiByZXN1bHQgIT0gMSkgewotICAgICAgICAkLmFnZW50LnJlcG9ydCgiRXJyb3I6
IGJhZCByZXN1bHQgZnJvbSB3YWtlOiAiICsgcmVzdWx0KTsKKyAgICAgICAgJC5hZ2VudC5yZXBv
cnQoIkVycm9yOiBiYWQgcmVzdWx0IGZyb20gbm90aWZ5OiAiICsgcmVzdWx0KTsKICAgICAgICAg
JC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgfQogfQpAQCAtNjYsNyArNjQsNyBAQCBmdW5j
dGlvbiB3YWtlKG1lbW9yeSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIxOiBJdCBz
dGFydGVkISIpOwogICAgICAgICAKICAgICAgICAgbWVtb3J5W3Nob3VsZEdvSWR4XSA9IDE7Ci0g
ICAgICAgIHdha2UobWVtb3J5LCBzaG91bGRHb0lkeCk7CisgICAgICAgIG5vdGlmeShtZW1vcnks
IHNob3VsZEdvSWR4KTsKICAgICAgICAgCiAgICAgICAgIHdhaXQobWVtb3J5LCBkaWRFbmRJZHgs
IDAsIDEpOwogICAgICAgICAKQEAgLTg4LDEyICs4NiwxMiBAQCBmdW5jdGlvbiB3YWtlKG1lbW9y
eSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIyOiBNZW1vcnk6ICIgKyBtZW1vcnkp
OwogICAgICAgICAKICAgICAgICAgQXRvbWljcy5zdG9yZShtZW1vcnksIGRpZFN0YXJ0SWR4LCAx
KTsKLSAgICAgICAgd2FrZShtZW1vcnksIGRpZFN0YXJ0SWR4KTsKKyAgICAgICAgbm90aWZ5KG1l
bW9yeSwgZGlkU3RhcnRJZHgpOwogICAgICAgICAKICAgICAgICAgd2FpdChtZW1vcnksIHNob3Vs
ZEdvSWR4LCAwLCAxKTsKICAgICAgICAgCiAgICAgICAgIEF0b21pY3Muc3RvcmUobWVtb3J5LCBk
aWRFbmRJZHgsIDEpOwotICAgICAgICB3YWtlKG1lbW9yeSwgZGlkRW5kSWR4LCAxKTsKKyAgICAg
ICAgbm90aWZ5KG1lbW9yeSwgZGlkRW5kSWR4LCAxKTsKICAgICAgICAgCiAgICAgICAgICQuYWdl
bnQucmVwb3J0KCIyOiBNZW1vcnk6ICIgKyBtZW1vcnkpOwogICAgICAgICAkLmFnZW50LnJlcG9y
dCgiZG9uZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5q
cyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEuanMKaW5kZXggZWU5ZmUyMDc3NDMy
MGViNGI2MTczNzdjODM1NjM5ZWNiMTQwMGU1Ni4uZTE5ZGI4NjE2YzZmMzU3YTVkNDRmNThkNzgw
MTE0ZDUxNWFkOTg2OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3Nzkt
MS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCkBAIC0xLDQgKzEs
MyBAQAotLy9AIHNraXAKIC8vQCBkZWZhdWx0UnVuTm9pc3lUZXN0CiAKIHZhciBqc1N0cmljdE1v
ZGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIu
anMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCmluZGV4IDg5ZmJjZTA5NTIy
YWQyZTViM2ExNDBmNzg3NGVlZDJkZmIyZGYxMWUuLmJhNzM5MWQzNGE5NjgxY2UzZDc1YTliOGU2
MGQwOTcyYzI0NGU1OGEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5
LTIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwpAQCAtMSw0ICsx
LDMgQEAKLS8vQCBza2lwCiAvL0AgaWYgJGJ1aWxkVHlwZSA9PSAicmVsZWFzZSIgdGhlbiBkZWZh
dWx0UnVuTm9pc3lUZXN0IGVsc2Ugc2tpcCBlbmQKIAogdmFyIGpzU3RyaWN0TW9kZSA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNzA0NzMuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwppbmRleCBhYTlhYWJhOGRjNWUxMDI5Y2Q3NzFkMzhh
N2ExZjdiNDZiYWVjMjQwLi4xNmUxNmQ3NDRiMmExYTVkYTI2YTU5ZTNiN2IwNGUzOTM5OTRiZDAy
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2
YXIgaGVhcCA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcig0MDk2KTsKIHZhciBVaW50OEFycmF5Vmll
dyA9IG5ldyBVaW50OEFycmF5KGhlYXApOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9z
aGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlp
bmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlm
ZmVyZW50LXRocmVhZC1pcy1tb2RpZnlpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdhY2U5MGVjOWU4ZDE4
OTExOGZhNjViZDVmN2M3Y2RlZGI1YjMwYgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3NoYXJlZC1hcnJheS1idWZmZXItc29ydC13aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlzLW1v
ZGlmeWluZy5qcwpAQCAtMCwwICsxLDM4IEBACisvL0AgcnVuRGVmYXVsdCgiLS13YXRjaGRvZz0x
MDAwIiwgIi0td2F0Y2hkb2ctZXhjZXB0aW9uLW9rIikKKworJDI2Mi5hZ2VudC53YWl0VW50aWwg
PSBmdW5jdGlvbih0eXBlZEFycmF5LCBpbmRleCwgZXhwZWN0ZWQpIHsKKyAgdmFyIGFnZW50cyA9
IDA7CisgIHdoaWxlICgoYWdlbnRzID0gQXRvbWljcy5sb2FkKHR5cGVkQXJyYXksIGluZGV4KSkg
IT09IGV4cGVjdGVkKSB7CisgICAgLyogbm90aGluZyAqLworICB9Cit9OworCitjb25zdCBJVEVS
QVRJT05TID0gMTAwMDA7Citjb25zdCBSVU5OSU5HID0gMDsKKworY29uc3QgaTMyYSA9IG5ldyBJ
bnQzMkFycmF5KAorICBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoSW50MzJBcnJheS5CWVRFU19QRVJf
RUxFTUVOVCAqIDEwMDAwMCkKKyk7CisKKyQyNjIuYWdlbnQuc3RhcnQoYAorICAkMjYyLmFnZW50
LnJlY2VpdmVCcm9hZGNhc3QoZnVuY3Rpb24oc2FiKSB7CisgICAgY29uc3QgaTMyYSA9IG5ldyBJ
bnQzMkFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTMyYSwgJHtSVU5OSU5HfSwgMSk7CisK
KyAgICBmb3IgKHZhciBqID0gMTsgaiA8ICR7SVRFUkFUSU9OU307ICsraikgeworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGkzMmEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGkzMmFb
aV0gPSBqOworICAgICAgICB9CisgICAgfQorCisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoImRvbmUi
KTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSk7CitgKTsKKworJDI2Mi5hZ2VudC5i
cm9hZGNhc3QoaTMyYS5idWZmZXIpOworJDI2Mi5hZ2VudC53YWl0VW50aWwoaTMyYSwgUlVOTklO
RywgMSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgSVRFUkFUSU9OUzsgKytpKSB7CisgICAgaTMy
YS5zb3J0KCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9K
U1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKaW5kZXggYjkxNDk2N2JkYjcwNTA0MmI4OGZiOWY1
ODBiYmRhZDlkZDhjZTNiMS4uNzdhZjBhN2EyMTM3NTMzMzdkZGE0MDJlZDBmMGMzNjFlNTM5ZGY4
NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi9jb25maWcueWFtbApAQCAtNiwxMCArNiwxMCBAQCBmbGFnczoKICAgY2xhc3MtZmll
bGRzLXB1YmxpYzogdXNlUHVibGljQ2xhc3NGaWVsZHMKICAgY2xhc3MtZmllbGRzLXByaXZhdGU6
IHVzZVByaXZhdGVDbGFzc0ZpZWxkcwogICBJbnRsLkRhdGVUaW1lRm9ybWF0LWRheVBlcmlvZDog
dXNlSW50bERhdGVUaW1lRm9ybWF0RGF5UGVyaW9kCisgIFNoYXJlZEFycmF5QnVmZmVyOiB1c2VT
aGFyZWRBcnJheUJ1ZmZlcgorICBBdG9taWNzOiB1c2VTaGFyZWRBcnJheUJ1ZmZlcgogc2tpcDoK
ICAgZmVhdHVyZXM6Ci0gICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgotICAgIC0gQXRvbWljcwogICAg
IC0gQXRvbWljcy53YWl0QXN5bmMKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzQ5MzEKICAgICAtIHJlZ2V4cC1sb29rYmVoaW5kCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0
YXRpb25zLnlhbWwKaW5kZXggYzU3YmFhNGY1YjUyMWRhZDc4YTJhYjViNWQwMGViYzk5MjliYmRk
OC4uN2NjZjBmYTMwMTRkM2MwNGVmNWY3YzkxZmIyZWI3MTRhYjJlMTNhNyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbApAQCAtNjI3LDYgKzYyNywxODkgQEAgdGVzdC9idWlsdC1pbnMvQXJy
YXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1zbWFsbGVyLWFycmF5YnVm
ZmVyLmoKIHRlc3QvYnVpbHQtaW5zL0FycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVz
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2Jq
ZWN0IEFycmF5QnVmZmVyXcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1
ZmZlcl3Cuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKK3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3MvYWRkL2JpZ2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3MvYWRkL2JpZ2ludC9nb29kLXZpZXdzLmpzOgorICBkZWZhdWx0OiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmlj
dCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJy
YXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2FkZC9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJk
YXRhLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2FuZC9i
aWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL2FuZC9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVz
dC9idWlsdC1pbnMvQXRvbWljcy9hbmQvYmlnaW50L25vbi1zaGFyZWQtYnVmZmVyZGF0YS5qczoK
KyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9jb21wYXJlRXhjaGFu
Z2UvYmlnaW50L2JhZC1yYW5nZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1p
bnMvQXRvbWljcy9jb21wYXJlRXhjaGFuZ2UvYmlnaW50L2dvb2Qtdmlld3MuanM6CisgIGRlZmF1
bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIK
KyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvY29tcGFyZUV4Y2hhbmdlL2JpZ2lu
dC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3MvZXhjaGFuZ2UvYmlnaW50L2JhZC1yYW5nZS5qczoKKyAgZGVmYXVsdDog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBz
dHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9leGNoYW5nZS9iaWdpbnQvZ29vZC12aWV3
cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBC
aWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9leGNoYW5n
ZS9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJkYXRhLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2Rl
OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0
ZXN0L2J1aWx0LWlucy9BdG9taWNzL2lzTG9ja0ZyZWUvYmlnaW50L2V4cGVjdGVkLXJldHVybi12
YWx1ZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9sb2Fk
L2JpZ2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5z
L0F0b21pY3MvbG9hZC9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9k
ZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5Igor
dGVzdC9idWlsdC1pbnMvQXRvbWljcy9sb2FkL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEu
anM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2Jp
Z2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0
b21pY3Mvbm90aWZ5L2JpZ2ludC9ub24tYmlnaW50NjQtdHlwZWRhcnJheS10aHJvd3MuanM6Cisg
IGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnVWludDY0
QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IEJpZ1VpbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9ub3RpZnkvYmlnaW50
L25vbi1zaGFyZWQtYnVmZmVyZGF0YS1jb3VudC1ldmFsdWF0aW9uLXRocm93cy5qczoKKyAgZGVm
YXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5
IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBC
aWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9ub3RpZnkvYmlnaW50L25vbi1z
aGFyZWQtYnVmZmVyZGF0YS1pbmRleC1ldmFsdWF0aW9uLXRocm93cy5qczoKKyAgZGVmYXVsdDog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBz
dHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9ub3RpZnkvYmlnaW50L25vbi1zaGFyZWQt
YnVmZmVyZGF0YS1ub24tc2hhcmVkLWludC12aWV3cy10aHJvd3MuanM6CisgIGRlZmF1bHQ6ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3Ry
aWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRB
cnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2JpZ2ludC9ub24tc2hhcmVkLWJ1
ZmZlcmRhdGEtcmV0dXJucy0wLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL25vdGlmeS9iaWdpbnQvbm90aWZ5LWFsbC1vbi1sb2MuanM6CisgIGRlZmF1bHQ6
ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAg
c3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50
NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2JpZ2ludC9udWxsLWJ1ZmZl
cmRhdGEtdGhyb3dzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL29yL2JpZ2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3Mvb3IvYmlnaW50L2dvb2Qtdmlld3MuanM6CisgIGRlZmF1bHQ6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0
IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJh
eSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvb3IvYmlnaW50L25vbi1zaGFyZWQtYnVmZmVyZGF0
YS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBC
aWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9zdG9yZS9i
aWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3N0b3JlL2JpZ2ludC9nb29kLXZpZXdzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2Rl
OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3N0b3JlL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEu
anM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvc3ViL2JpZ2lu
dC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvc3ViL2JpZ2ludC9nb29kLXZpZXdzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3N1Yi9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJkYXRhLmpzOgorICBk
ZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJy
YXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L2JhZC1y
YW5nZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
L2JpZ2ludC9jYW5ub3Qtc3VzcGVuZC10aHJvd3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6
ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvZmFsc2UtZm9yLXRpbWVvdXQtYWdlbnQu
anM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdp
bnQvZmFsc2UtZm9yLXRpbWVvdXQuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbmFuLWZvci10aW1lb3V0LmpzOgorICBkZWZhdWx0OiAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0
cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0
QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25lZ2F0aXZlLWluZGV4
LXRocm93cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0L2JpZ2ludC9uZWdhdGl2ZS10aW1lb3V0LWFnZW50LmpzOgorICBkZWZhdWx0OiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBt
b2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXki
Cit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25lZ2F0aXZlLXRpbWVvdXQuanM6
CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50
NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQv
bm8tc3B1cmlvdXMtd2FrZXVwLW5vLW9wZXJhdGlvbi5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9k
ZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5Igor
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24t
YWRkLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQv
YmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1hbmQuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1v
ZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIK
K3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9u
LWNvbXBhcmVFeGNoYW5nZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0L2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24tZXhjaGFuZ2UuanM6Cisg
IGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRB
cnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbm8t
c3B1cmlvdXMtd2FrZXVwLW9uLW9yLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1zdG9yZS5qczoK
KyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9u
by1zcHVyaW91cy13YWtldXAtb24tc3ViLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi14b3IuanM6
CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50
NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQv
bm9uLWJpZ2ludDY0LXR5cGVkYXJyYXktdGhyb3dzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ1VpbnQ2NEFycmF5IgorICBzdHJpY3QgbW9k
ZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdVaW50NjRBcnJheSIK
K3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJkYXRh
LXRocm93cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0L2JpZ2ludC9udWxsLWJ1ZmZlcmRhdGEtdGhyb3dzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBt
b2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXki
Cit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L291dC1vZi1yYW5nZS1pbmRleC10
aHJvd3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dC9iaWdpbnQvdmFsdWUtbm90LWVxdWFsLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L3dhaXRlcmxpc3QtYmxvY2staW5kZXhlZHBvc2l0
aW9uLXdha2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdC9iaWdpbnQvd2FpdGVybGlzdC1vcmRlci1vZi1vcGVyYXRpb25zLWlzLWZpZm8uanM6Cisg
IGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRB
cnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvd2Fz
LXdva2VuLWJlZm9yZS10aW1lb3V0LmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3hvci9iaWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBt
b2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXki
Cit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3hvci9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVm
YXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5
IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBC
aWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy94b3IvYmlnaW50L25vbi1zaGFy
ZWQtYnVmZmVyZGF0YS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgogdGVzdC9idWlsdC1pbnMvRGF0
ZS9VVEMvZnAtZXZhbHVhdGlvbi1vcmRlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
b3JkZXIgb2Ygb3BlcmF0aW9ucyAvIHByZWNpc2lvbiBpbiBNYWtlVGltZSBFeHBlY3RlZCBTYW1l
VmFsdWUowqtOYU7CuywgwqsyOTMxMsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogb3JkZXIgb2Ygb3BlcmF0aW9ucyAvIHByZWNpc2lvbiBpbiBNYWtlVGltZSBF
eHBlY3RlZCBTYW1lVmFsdWUowqtOYU7CuywgwqsyOTMxMsK7KSB0byBiZSB0cnVlJwpAQCAtODQ3
LDYgKzEwMzAsMzAgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFz
dGluZGV4LWFkdi5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9xdWFudGlmaWVyLWludGVnZXIt
bGltaXQuanM6CiAgIGRlZmF1bHQ6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKICAgc3RyaWN0IG1vZGU6
ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFy
Z2UgaW4ge30gcXVhbnRpZmllcicKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3By
b3RvdHlwZS9zbGljZS9zcGVjaWVzLWNvbnN0cnVjdG9yLWlzLW5vdC1vYmplY3QuanM6CisgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcmAgdmFsdWUgaXMgbnVsbCBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcmAgdmFsdWUg
aXMgbnVsbCBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3By
b3RvdHlwZS9zbGljZS9zcGVjaWVzLWlzLW5vdC1jb25zdHJ1Y3Rvci5qczoKKyAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUgaXMgT2Jq
ZWN0IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVj
dG9yW1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUgaXMgT2JqZWN0IEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9i
dWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtaXMtbm90
LW9iamVjdC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yW1N5bWJv
bC5zcGVjaWVzXWAgdmFsdWUgaXMgQm9vbGVhbiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIEJv
b2xlYW4gRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24g
d2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90
b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1cm5zLWxhcmdlci1hcnJheWJ1ZmZlci5qczoKKyAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrOMK7LCDCqzEwwrspIHRv
IGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqs4wrssIMKrMTDCuykgdG8gYmUgdHJ1ZScKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5
QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVybnMtbm90LWFycmF5YnVmZmVyLmpz
OgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlC
dWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1zYW1lLWFycmF5YnVmZmVyLmpz
OgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlC
dWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1zbWFsbGVyLWFycmF5YnVmZmVy
LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBi
ZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJy
YXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdwrss
IMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IFNoYXJlZEFycmF5QnVmZmVyXcK7LCDCq3Vu
ZGVmaW5lZMK7KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5
cGUvZXZlcnkvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rp
bmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBG
bG9hdDY0QXJyYXkuKScKQEAgLTEwMDcsOCArMTIxNCw4IEBAIHRlc3QvaW50bDQwMi9Mb2NhbGUv
Y29uc3RydWN0b3ItYXBwbHktb3B0aW9ucy1jYW5vbmljYWxpemVzLXR3aWNlLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtydS1Bcm1uLVNVwrssIMKr
cnUtQXJtbi1BTcK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrcnUtQXJtbi1TVcK7LCDCq3J1LUFybW4tQU3CuykgdG8gYmUg
dHJ1ZScKIHRlc3QvaW50bDQwMi9Mb2NhbGUvY29uc3RydWN0b3Itbm9uLWlhbmEtY2Fub24uanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgibW8iKS5tYXhpbWl6
ZSgpLnRvU3RyaW5nKCkgcmV0dXJucyAicm8tTGF0bi1STyIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
cm/Cuywgwqtyby1MYXRuLVJPwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBuZXcgSW50bC5Mb2NhbGUoIm1vIikubWF4aW1pemUoKS50b1N0cmluZygpIHJldHVy
bnMgInJvLUxhdG4tUk8iIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3JvwrssIMKrcm8tTGF0bi1ST8K7
KSB0byBiZSB0cnVlJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5Mb2NhbGUo
InBvc2l4IikudG9TdHJpbmcoKSByZXR1cm5zICJwb3NpeCIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
ZW4tVVMtdS12YS1wb3NpeMK7LCDCq3Bvc2l4wrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5Mb2NhbGUoInBvc2l4IikudG9TdHJpbmcoKSByZXR1
cm5zICJwb3NpeCIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZW4tVVMtdS12YS1wb3NpeMK7LCDCq3Bv
c2l4wrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvTG9jYWxlL2NvbnN0cnVjdG9yLW9wdGlv
bnMtcmVnaW9uLXZhbGlkLmpzOgogICBkZWZhdWx0OiAiVGVzdDI2MkVycm9yOiBuZXcgSW50bC5M
b2NhbGUoJ2VuJywge3JlZ2lvbjogXCI1NTRcIn0pLnRvU3RyaW5nKCkgcmV0dXJucyBcImVuLU5a
XCIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZW4tNTU0wrssIMKrZW4tTlrCuykgdG8gYmUgdHJ1ZSIK
ICAgc3RyaWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgnZW4nLCB7cmVn
aW9uOiBcIjU1NFwifSkudG9TdHJpbmcoKSByZXR1cm5zIFwiZW4tTlpcIiBFeHBlY3RlZCBTYW1l
VmFsdWUowqtlbi01NTTCuywgwqtlbi1OWsK7KSB0byBiZSB0cnVlIgpAQCAtMjUxMywxOCArMjcy
MCw2IEBAIHRlc3QvbGFuZ3VhZ2UvZ2xvYmFsLWNvZGUvc2NyaXB0LWRlY2wtdmFyLWVyci5qczoK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9sYW5ndWFn
ZS9pZGVudGlmaWVyLXJlc29sdXRpb24vYXNzaWduLXRvLWdsb2JhbC11bmRlZmluZWQuanM6CiAg
IHN0cmljdCBtb2RlOiBFeHBlY3RlZCB1bmNhdWdodCBleGNlcHRpb24gd2l0aCBuYW1lICdSZWZl
cmVuY2VFcnJvcicgYnV0IG5vbmUgd2FzIHRocm93bgotdGVzdC9sYW5ndWFnZS9pZGVudGlmaWVy
cy9wYXJ0LXVuaWNvZGUtMTMuMC4wLWVzY2FwZWQuanM6Ci0gIGRlZmF1bHQ6ICJTeW50YXhFcnJv
cjogSW52YWxpZCB1bmljb2RlIGVzY2FwZSBpbiBpZGVudGlmaWVyOiAnX1xcdTBCNTUnIgotICBz
dHJpY3QgbW9kZTogIlN5bnRheEVycm9yOiBJbnZhbGlkIHVuaWNvZGUgZXNjYXBlIGluIGlkZW50
aWZpZXI6ICdfXFx1MEI1NSciCi10ZXN0L2xhbmd1YWdlL2lkZW50aWZpZXJzL3BhcnQtdW5pY29k
ZS0xMy4wLjAuanM6Ci0gIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogSW52YWxpZCBjaGFyYWN0ZXIg
J1xcdTBiNTUnIgotICBzdHJpY3QgbW9kZTogIlN5bnRheEVycm9yOiBJbnZhbGlkIGNoYXJhY3Rl
ciAnXFx1MGI1NSciCi10ZXN0L2xhbmd1YWdlL2lkZW50aWZpZXJzL3N0YXJ0LXVuaWNvZGUtMTMu
MC4wLWVzY2FwZWQuanM6Ci0gIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogSW52YWxpZCB1bmljb2Rl
IGVzY2FwZSBpbiBpZGVudGlmaWVyOiAnXFx1MDhCRSciCi0gIHN0cmljdCBtb2RlOiAiU3ludGF4
RXJyb3I6IEludmFsaWQgdW5pY29kZSBlc2NhcGUgaW4gaWRlbnRpZmllcjogJ1xcdTA4QkUnIgot
dGVzdC9sYW5ndWFnZS9pZGVudGlmaWVycy9zdGFydC11bmljb2RlLTEzLjAuMC5qczoKLSAgZGVm
YXVsdDogIlN5bnRheEVycm9yOiBJbnZhbGlkIGNoYXJhY3RlciAnXFx1MDhiZSciCi0gIHN0cmlj
dCBtb2RlOiAiU3ludGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcXHUwOGJlJyIKIHRlc3Qv
bGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtYXN0cmFsLWNoYXItY2xhc3MtaW52ZXJ0LmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvvv73Cuywgwqtu
dWxswrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqvvv73CuywgwqtudWxswrspIHRvIGJlIHRydWUnCkBAIC0yNTYyLDEyICsy
NzU3LDYgQEAgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL25lc3RlZC1k
aXJlY3QtZXZhbC1lcnItY29udGFpbnMtYXJndW1lbnQKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50
cy9jbGFzcy9lbGVtZW50cy9uZXN0ZWQtcHJpdmF0ZS1kaXJlY3QtZXZhbC1lcnItY29udGFpbnMt
YXJndW1lbnRzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFN5bnRh
eEVycm9yIGJ1dCBnb3QgYSBSZWZlcmVuY2VFcnJvcicKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgYnV0IGdvdCBhIFJlZmVyZW5jZUVycm9yJwot
dGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3ByaXZhdGVmaWVsZGdldC1w
cmltaXRpdmUtcmVjZWl2ZXIuanM6Ci0gIGRlZmF1bHQ6ICdCYWQgZXhpdCBjb2RlOiA1JwotICBz
dHJpY3QgbW9kZTogJ0JhZCBleGl0IGNvZGU6IDUnCi10ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMv
Y2xhc3MvZWxlbWVudHMvcHJpdmF0ZWZpZWxkcHV0LXByaW1pdGl2ZS1yZWNlaXZlci5qczoKLSAg
ZGVmYXVsdDogJ0JhZCBleGl0IGNvZGU6IDUnCi0gIHN0cmljdCBtb2RlOiAnQmFkIGV4aXQgY29k
ZTogNScKIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9nZW4tbWV0aG9kLXN0YXRpYy9m
b3JiaWRkZW4tZXh0L2IyL2Nscy1kZWNsLWdlbi1tZXRoLXN0YXRpYy1mb3JiaWRkZW4tZXh0LWlu
ZGlyZWN0LWFjY2Vzcy1vd24tcHJvcC1jYWxsZXItZ2V0LmpzOgogICBkZWZhdWx0OiAnVHlwZUVy
cm9yOiBGdW5jdGlvbi5jYWxsZXIgdXNlZCB0byByZXRyaWV2ZSBnZW5lcmF0b3IgYm9keScKIHRl
c3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9nZW4tbWV0aG9kLXN0YXRpYy9mb3JiaWRkZW4t
ZXh0L2IyL2Nscy1kZWNsLWdlbi1tZXRoLXN0YXRpYy1mb3JiaWRkZW4tZXh0LWluZGlyZWN0LWFj
Y2Vzcy1vd24tcHJvcC1jYWxsZXItdmFsdWUuanM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413275</attachid>
            <date>2020-11-05 02:05:41 -0800</date>
            <delta_ts>2020-11-05 19:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212069-20201105020540.patch</filename>
            <type>text/plain</type>
            <size>106438</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTlkOWQzOGNhMDJiYjdmYTA3Y2MxMGI5YWZmYzdjMjIxMWJmZGE0Li4yZDY3ZjcxN2QwMjVhZDNm
NmM2OWFjNGM2ZmZhNDQyYzUxYmIzN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAyMC0xMS0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAo
c29ydCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAq
IGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6
OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6
CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6
Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Om11c3RHZW5lcmF0ZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
VmFyQXJncyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6bXVzdEdlbmVyYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZH
U1NBTG93ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJpbmdQaGFz
ZTo6aGFuZGxlTm9kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUF0b21pY3NJc0xvY2tGcmVlKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAocHJpbnRVc2FnZVN0YXRlbWVudCk6CisgICAgICAgIChDb21tYW5kTGluZTo6cGFyc2VB
cmd1bWVudHMpOgorICAgICAgICAocnVuSlNDKToKKyAgICAgICAgKiBydW50aW1lL0F0b21pY3NP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpBdG9taWNzT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW50cmluc2ljTmFtZSk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjp0b0ludGVnZXJPckluZmluaXR5IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6
OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UpOgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6
CisgICAgICAgICogcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnNMaXN0
Lmg6CisgICAgICAgICogcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpTaW1wbGVUeXBlZEFycmF5
Q29udHJvbGxlcik6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpp
c0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVhZCk6CisgICAgICAgICogcnVudGltZS9T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oOgorCiAyMDIwLTExLTA1ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZv
ciBBUk02NEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggZGUwOWI4ZTA3MmY2MDllMThkY2Y0OThiMmMzOGZiNjFmMWVlZDY5ZC4u
NzQ0OTY2MTZkZGIzMDM1MWRjYjQ4YmJkYTRkOWYxNjQ4MWRkZDBkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0xMS0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoKKwogMjAy
MC0xMS0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
R1BVIFByb2Nlc3NdIE1vdmUgdGhlIGludGVybmFsIEdQVSByZW5kZXJpbmcgZmxhZ3MgZnJvbSBX
ZWJQYWdlIHRvIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuaAppbmRleCA5YjliNjQ4ODIwYWMxYzJlNTk4OTdmYWQ4M2ZkZmZlMzdjN2E4
NWY1Li42MzllMzNhZWUxMGQ1OWQyMjRkNTk1YzQzNjAzNzM3ZjBmMjBhODk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xMTcsNyArMTE3
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgbWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKICAgICBt
YWNybyhkZXJpdmVkQ29uc3RydWN0b3IpIFwKICAgICBtYWNybyhpc1R5cGVkQXJyYXlWaWV3KSBc
CisgICAgbWFjcm8oaXNTaGFyZWRUeXBlZEFycmF5VmlldykgXAogICAgIG1hY3JvKGlzRGV0YWNo
ZWQpIFwKKyAgICBtYWNybyh0eXBlZEFycmF5RGVmYXVsdENvbXBhcmF0b3IpIFwKICAgICBtYWNy
byhpc0JvdW5kRnVuY3Rpb24pIFwKICAgICBtYWNybyhoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24p
IFwKICAgICBtYWNybyhpbnN0YW5jZU9mKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzCmluZGV4IDJhZGZjZjM5Y2UwZGMy
MzUwZmYxZGE3NWQ2OTMxZjAxNjdjMmYwZmUuLjFjODdhYmZkMWVkOWNlNjc0NWExNjUxMGU3Nzkz
MTk5YTI2MGRkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9U
eXBlZEFycmF5UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9UeXBlZEFycmF5UHJvdG90eXBlLmpzCkBAIC0yMzgsOSArMjM4LDEzIEBAIGZ1bmN0aW9uIHNv
cnQoY29tcGFyYXRvcikKICAgICBpZiAobGVuZ3RoIDwgMikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKGNvbXBhcmF0b3IgIT09IEB1bmRlZmluZWQpCisgICAgLy8gdHlwZWRBcnJheVNvcnQg
aXMgbm90IHNhZmUgd2hlbiB0aGUgb3RoZXIgdGhyZWFkIGlzIG1vZGlmeWluZyBjb250ZW50LiBT
byBpZiB8dGhpc3wgaXMgU2hhcmVkQXJyYXlCdWZmZXIsCisgICAgLy8gdXNlIEpTLWltcGxlbWVl
bnRlZCBzb3J0aW5nLgorICAgIGlmIChjb21wYXJhdG9yICE9PSBAdW5kZWZpbmVkIHx8IEBpc1No
YXJlZFR5cGVkQXJyYXlWaWV3KHRoaXMpKSB7CisgICAgICAgIGlmIChjb21wYXJhdG9yID09PSBA
dW5kZWZpbmVkKQorICAgICAgICAgICAgY29tcGFyYXRvciA9IEB0eXBlZEFycmF5RGVmYXVsdENv
bXBhcmF0b3I7CiAgICAgICAgIEB0eXBlZEFycmF5TWVyZ2VTb3J0KHRoaXMsIGxlbmd0aCwgY29t
cGFyYXRvcik7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBAdHlwZWRBcnJheVNvcnQo
dGhpcyk7CiAKICAgICByZXR1cm4gdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCmluZGV4IDkyM2ViYjk4YTZmYjdiZmZkZGY3NjEx
YTAyYTI2MTQwMjQ5YzY4N2QuLmQzNTlhMzg1NjA2NjI4MDZkMDgwMDRhZjYwYmVmYjc3ZmZjN2U1
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNv
bnN0YW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaApAQCAtNTMsNyArNTMsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHR5
cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBudWxscHRyKSBcCiAgICAgdih0eXBlZEFy
cmF5U29ydCwgbnVsbHB0cikgXAogICAgIHYoaXNUeXBlZEFycmF5VmlldywgbnVsbHB0cikgXAor
ICAgIHYoaXNTaGFyZWRUeXBlZEFycmF5VmlldywgbnVsbHB0cikgXAogICAgIHYoaXNEZXRhY2hl
ZCwgbnVsbHB0cikgXAorICAgIHYodHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yLCBudWxscHRy
KSBcCiAgICAgdih0eXBlZEFycmF5U3ViYXJyYXlDcmVhdGUsIG51bGxwdHIpIFwKICAgICB2KGlz
Qm91bmRGdW5jdGlvbiwgbnVsbHB0cikgXAogICAgIHYoaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9u
LCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMjM3YzRlMjg3MTE2NDk1NmQwZTRh
ZDAzYmNhZmIwYzhlNjA3MjhjZi4uZTM5MGViNjFkNTNjOGI3YTE4YmJlNWQzYWZlYmYxMDY3MzE3
OTcyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtODI2LDcgKzgyNiw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVk
IGNsb2JiZXJMaW1pCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIEF0b21pY3NJc0xvY2tGcmVl
OiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpCisg
ICAgICAgIGlmIChtX2dyYXBoLmNoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSAhPSBJbnQzMlVzZSkK
ICAgICAgICAgICAgIGNsb2JiZXJXb3JsZCgpOwogICAgICAgICBzZXROb25DZWxsVHlwZUZvck5v
ZGUobm9kZSwgU3BlY0Jvb2xJbnQzMik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBmZDg3MTRhMjUwOTIw
OGY5NWExNTVhZmI1N2U2ZDQzMjhjMGE2MWU5Li45OTgwYzg5MTg1NmJmYTk0ZmJjNTI2N2RlZTc0
NTFlNWNlZDZlYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcApAQCAtMjcxNywyNCArMjcxNywxOSBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgT3BlcmFuZCByZXN1bHQsIEludHJp
bnNpYwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSA8IDEgKyBudW1BcmdzKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEluZGV4aW5nVHlwZSkK
KyAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDb25zdGFudENhY2hlKQorICAgICAgICAgICAgICAg
IHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50
SW5kZXgsIEJhZENhY2hlKQorICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5zZXJ0
Q2hlY2tzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFZlY3RvcjxOb2RlKiwgMz4gYXJn
czsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1BcmdzOyArK2kpCi0g
ICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50
SW5jbHVkaW5nVGhpcygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIE5vZGUqIHJlc3VsdE5vZGU7Ci0gICAgICAgICAgICBpZiAobnVtQXJncyArIDEg
PD0gMykgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdzLnNpemUoKSA8IDMpCi0gICAgICAg
ICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHJlc3Vs
dE5vZGUgPSBhZGRUb0dyYXBoKG9wLCBPcEluZm8oQXJyYXlNb2RlKEFycmF5OjpTZWxlY3RVc2lu
Z1ByZWRpY3Rpb25zLCBhY3Rpb24pLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBhcmdz
WzBdLCBhcmdzWzFdLCBhcmdzWzJdKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgZm9yIChOb2RlKiBub2RlIDogYXJncykKLSAgICAgICAgICAgICAgICAgICAgYWRkVmFy
QXJnQ2hpbGQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0Tm9kZSA9IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBv
cCwgT3BJbmZvKEFycmF5TW9kZShBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9ucywgYWN0aW9u
KS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5j
bHVkaW5nVGhpcygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7CisgICAgICAgICAgICBhZGRWYXJB
cmdDaGlsZChudWxscHRyKTsKKyAgICAgICAgICAgIE5vZGUqIHJlc3VsdE5vZGUgPSBhZGRUb0dy
YXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbyhBcnJheU1vZGUoQXJyYXk6OlNlbGVjdFVzaW5n
UHJlZGljdGlvbnMsIGFjdGlvbikuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbikpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBzZXRSZXN1bHQocmVzdWx0Tm9kZSk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
aW5kZXggOGY2ODdhOGJlYWExMTJiZmI2ZGNmNTdmMjcyYTc0OWFlNzU1YTdlNS4uZjA5ZGZjZDRl
NTQwODNlZWU4NDMyMDMwYTFiYzA5MjE0ZmI3ZDY5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI1Myw4ICsyNTMsOCBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEF0b21pY3NJc0xvY2tGcmVlOgot
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMyVXNlKQotICAgICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CisgICAgICAgIGlmIChncmFwaC5jaGlsZChub2Rl
LCAwKS51c2VLaW5kKCkgPT0gSW50MzJVc2UpCisgICAgICAgICAgICBkZWYoUHVyZVZhbHVlKGdy
YXBoLCBub2RlKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsb2JiZXJUb3AoKTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZWIwNDY1MzQ4M2MxMGMyYzJhMGUwNGUyMGNhNzY5MGYzMjFmZjEzMC4uNzRlZWUx
MjAzNDkwOWVlYzdhNWMwNWNhNjM2YzQ3NmRkMmI0ZTVhZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMzY1LDggKzEzNjUsOCBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6Ci0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQx
KCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpCi0gICAgICAgICAgICAgICAgZml4SW50T3JCb29s
ZWFuRWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBpZiAobV9ncmFwaC5jaGlsZChu
b2RlLCAwKS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKKyAgICAgICAgICAgICAgICBmaXhJbnRP
ckJvb2xlYW5FZGdlKG1fZ3JhcGguY2hpbGQobm9kZSwgMCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheVB1c2g6IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKaW5kZXggODk3Yjk5OWU5NTQ0ZTI5Y2YwMDZmOWQ4NmM0MjdlNTY5MzNk
NWRmZS4uYWJlYjE3YmRjMGYzMTM0NmRhMjMzNzcyNDI5MDZlNzY1YzgwYTA4NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTUwNCwxMCArNTA0LDE1IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICB2b2lkIGNvbnZlcnRUb0lkZW50aXR5KCk7CiAgICAgdm9pZCBjb252ZXJ0VG9JZGVu
dGl0eU9uKE5vZGUqKTsKIAotICAgIGJvb2wgbXVzdEdlbmVyYXRlKCkKKyAgICBib29sIG11c3RH
ZW5lcmF0ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNdXN0
R2VuZXJhdGU7CiAgICAgfQorCisgICAgYm9vbCBoYXNWYXJBcmdzKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZUhhc1ZhckFyZ3M7CisgICAgfQogICAgIAogICAg
IGJvb2wgaXNDb25zdGFudCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCmluZGV4IDFjMjZjM2MxNTE0YWFjMjI2NThkMzA0NGJhOGQ0YWIyZTQ3ZDkxZTkuLjc4
M2FjOGFlNzQwM2QzMmRhZjUzZTc3YTQyODllZDgxNDk1ODExNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTI5OSw4ICsyOTksOCBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQXRvbWljc0FuZCwgTm9kZVJlc3VsdEpTIHwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc0Nv
bXBhcmVFeGNoYW5nZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNW
YXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc0V4Y2hhbmdlLCBOb2RlUmVzdWx0SlMgfCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKLSAgICBtYWNybyhBdG9taWNzSXNMb2Nr
RnJlZSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKLSAgICBtYWNybyhBdG9taWNzTG9hZCwgTm9kZVJl
c3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEF0b21pY3NJc0xvY2tGcmVl
LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgbWFjcm8oQXRvbWlj
c0xvYWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykg
XAogICAgIG1hY3JvKEF0b21pY3NPciwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc1N0b3JlLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKICAgICBtYWNybyhBdG9taWNz
U3ViLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3Bw
CmluZGV4IDZiNjViNjc3YjFkZGUyYWEwNjVmNTNhMTJlNDVjYzRjYzcyN2Q3ODguLjYzODZiOGEz
NjJlMTNlMmEwYTgwMDFhZjM4M2FlNGZlZjhjYzliY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcApAQCAtNzUsNyArNzUsMTIgQEAg
Y2xhc3MgU1NBTG93ZXJpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQXRv
bWljc09yOgogICAgICAgICBjYXNlIEF0b21pY3NTdG9yZToKICAgICAgICAgY2FzZSBBdG9taWNz
U3ViOgotICAgICAgICBjYXNlIEF0b21pY3NYb3I6CisgICAgICAgIGNhc2UgQXRvbWljc1hvcjog
eworICAgICAgICAgICAgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gbnVtRXh0cmFBdG9taWNzQXJn
cyhtX25vZGUtPm9wKCkpOworICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjayhtX2dyYXBoLmNo
aWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAxKSwgbV9ncmFwaC5jaGlsZCht
X25vZGUsIDIgKyBudW1FeHRyYUFyZ3MpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKICAgICAgICAgY2FzZSBIYXNJbmRleGVkUHJvcGVydHk6CiAgICAgICAgICAgICBsb3dlckJv
dW5kc0NoZWNrKG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKSwgbV9ncmFwaC5jaGlsZChtX25vZGUs
IDEpLCBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMikpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRl
eCA2NDY0N2VjMjQyMDc2ZjUwY2Y3ZWY5MmZlMWIzMWQ5M2I1OGJjYWQzLi41Y2RlZWIzODU4OTRk
Nzg5YWE2YWMxNDI3OTBlYzJmYzQ2ZTQ4YzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTM0MzAsOCArMzQzMCw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9CiAgICAgICAgIAog
ICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6IHsKLSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LnVzZUtpbmQoKSAhPSBJbnQzMlVzZSkgewotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3Bl
cmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEVkZ2UgY2hpbGQxID0gbV9ncmFw
aC5jaGlsZChub2RlLCAwKTsKKyAgICAgICAgaWYgKGNoaWxkMS51c2VLaW5kKCkgIT0gSW50MzJV
c2UpIHsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wZXJhbmQodGhpcywgY2hpbGQxKTsK
ICAgICAgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0gb3BlcmFuZC5ncHIoKTsKICAgICAgICAg
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCBy
ZXN1bHQodGhpcyk7CkBAIC0zNDQyLDcgKzM0NDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
ICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcGVyYW5kKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wZXJhbmQodGhpcywgY2hpbGQxKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAgICAgR1BSUmVnIG9wZXJhbmRH
UFIgPSBvcGVyYW5kLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdw
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmlu
ZGV4IGRkNThiYjU0NmExYzYzZGNjY2VmNzYwMTQwYTlkMDRjYjVhYTc4YjEuLjBmZTJkMGYwMTM5
OGNlNmJiNTUyOGQ0N2EzZjViZTgzOTcxNWIxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTQyNzcsMTIgKzQyNzcsMTMgQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBpbGVBdG9taWNzSXNMb2NrRnJlZSgpCiAgICAg
ewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKLSAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxs
KEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2Jq
ZWN0KSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAgICAgICBFZGdlIGNoaWxk
MSA9IG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKTsKKyAgICAgICAgaWYgKGNoaWxkMS51c2VLaW5k
KCkgIT0gSW50MzJVc2UpIHsKKyAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBv
cGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93
SlNWYWx1ZShjaGlsZDEpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIExWYWx1ZSBieXRlcyA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICBMVmFsdWUgYnl0ZXMgPSBsb3dJbnQzMihjaGlsZDEpOwogICAgICAgICAKICAgICAg
ICAgTEJhc2ljQmxvY2sgdHJ1ZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFz
aWNCbG9jayBmYWxzZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApp
bmRleCBmZTdlN2ZjMGNmYzEzN2NmZGNkYWUzOTAzNjFiNWQ3MGNkNDQzYzJmLi5jOTVmOGIxNjVl
OGZhYzcwODBlNTQ3NWJlOTBmZDQ1YzE2MmM2OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAt
NjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKICNpbmNsdWRlICJS
ZWxlYXNlSGVhcEFjY2Vzc1Njb3BlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdQcm9maWxlci5oIgor
I2luY2x1ZGUgIlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU3RhY2tW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIlN1cGVy
U2FtcGxlci5oIgpAQCAtNDI0LDYgKzQyNSw3IEBAIGNsYXNzIENvbW1hbmRMaW5lIHsKICAgICBi
b29sIG1fZHVtcE1lbW9yeUZvb3RwcmludCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2R1bXBTYW1w
bGluZ1Byb2ZpbGVyRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZVJlbW90ZURlYnVn
Z2luZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhbkJsb2NrSXNGYWxzZSB7IGZhbHNlIH07CiAK
ICAgICB2b2lkIHBhcnNlQXJndW1lbnRzKGludCwgY2hhcioqKTsKIH07CkBAIC0zMDk3LDYgKzMw
OTksNyBAQCBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2FnZVN0YXRlbWVudChib29sIGhl
bHAgPSBmYWxzZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kdW1wT3B0aW9ucyAgICAgICAg
ICAgICAgRHVtcHMgYWxsIG5vbi1kZWZhdWx0IEpTQyBWTSBvcHRpb25zIGJlZm9yZSBjb250aW51
aW5nXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS08anNjIFZNIG9wdGlvbj49PHZhbHVl
PiAgU2V0cyB0aGUgc3BlY2lmaWVkIEpTQyBWTSBvcHRpb25cbiIpOwogICAgIGZwcmludGYoc3Rk
ZXJyLCAiICAtLWRlc3Ryb3ktdm0gICAgICAgICAgICAgICBEZXN0cm95IFZNIGJlZm9yZSBleGl0
aW5nXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1jYW4tYmxvY2staXMtZmFsc2UgICAg
ICAgTWFrZSBtYWluIHRocmVhZCdzIFtbQ2FuQmxvY2tdXSBmYWxzZVxuIik7CiAgICAgZnByaW50
ZihzdGRlcnIsICJcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiRmlsZXMgd2l0aCBhIC5tanMg
ZXh0ZW5zaW9uIHdpbGwgYWx3YXlzIGJlIGV2YWx1YXRlZCBhcyBtb2R1bGVzLlxuIik7CiAgICAg
ZnByaW50ZihzdGRlcnIsICJcbiIpOwpAQCAtMzIzMSw2ICszMjM0LDEwIEBAIHZvaWQgQ29tbWFu
ZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAg
IG1fZGVzdHJveVZNID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Cisg
ICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tY2FuLWJsb2NrLWlzLWZhbHNlIikpIHsKKyAgICAg
ICAgICAgIG1fY2FuQmxvY2tJc0ZhbHNlID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CiAgICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tZGlzYWJsZU9wdGlvbnNGcmVl
emluZ0ZvclRlc3RpbmciKSkgewogICAgICAgICAgICAgQ29uZmlnOjpkaXNhYmxlRnJlZXppbmdG
b3JUZXN0aW5nKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMzMjksNiArMzMzNiw4IEBA
IGludCBydW5KU0MoY29uc3QgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvb2wgaXNXb3JrZXIsIGNv
bnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29ya2VyIHdvcmtlcihXb3JrZXJzOjpzaW5nbGV0b24oKSk7
CiAgICAgCiAgICAgVk0mIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKKyAg
ICBpZiAoIWlzV29ya2VyICYmIG9wdGlvbnMubV9jYW5CbG9ja0lzRmFsc2UpCisgICAgICAgIHZt
Lm1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgSlNDOjpTaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlcihmYWxzZSkpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBXYXNt
OjplbmFibGVGYXN0TWVtb3J5KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKaW5kZXggN2UzMGFiZTZiMzk4N2UxMjU5MDA3MGEy
M2Q1MzAyY2FkN2NhNzBkYS4uYmUwNWYxODU1OTY0NTIxNTBhOTRkMTQ0YzdkZDgxMTYyN2M0Mzk1
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5j
cHAKQEAgLTQzLDExICs0MywxMSBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoQXRvbWljc09iamVjdCk7CiAgICAgbWFjcm8oZXhjaGFuZ2UsIEV4Y2hhbmdlLCAzKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oaXNMb2Nr
RnJlZSwgSXNMb2NrRnJlZSwgMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgbWFjcm8obG9hZCwgTG9hZCwgMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgbWFjcm8obm90aWZ5LCBOb3RpZnksIDMpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8ob3IsIE9yLCAz
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgbWFjcm8oc3RvcmUsIFN0b3JlLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oc3ViLCBTdWIsIDMpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8od2FpdCwgV2FpdCwg
NCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
bWFjcm8od2FrZSwgV2FrZSwgMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgbWFjcm8oeG9yLCBYb3IsIDMpCiAKICNkZWZpbmUgREVDTEFSRV9G
VU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3VudCkgIFwKQEAgLTgzLDQ1ICs4Myw0
MyBAQCB2b2lkIEF0b21pY3NPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICNs
b3dlck5hbWUpLCBjb3VudCwgYXRvbWljc0Z1bmMgIyMgdXBwZXJOYW1lLCBBdG9taWNzICMjIHVw
cGVyTmFtZSAjIyBJbnRyaW5zaWMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKICAgICBGT1JfRUFDSF9BVE9NSUNTX0ZVTkMoUFVUX0RJUkVDVF9O
QVRJVkVfRlVOQykKICN1bmRlZiBQVVRfRElSRUNUX05BVElWRV9GVU5DCisKKyAgICBKU0NfVE9f
U1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIAogbmFtZXNwYWNlIHsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgQWRhcHRvciwgdHlwZW5hbWUgRnVuYz4KLUVuY29kZWRKU1ZhbHVlIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBj
b25zdCBKU1ZhbHVlKiBhcmdzLCBUaHJvd1Njb3BlJiBzY29wZSwgSlNBcnJheUJ1ZmZlclZpZXcq
IHR5cGVkQXJyYXlWaWV3LCB1bnNpZ25lZCBhY2Nlc3NJbmRleCwgY29uc3QgRnVuYyYgZnVuYykK
K0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2UoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywgVGhyb3dTY29wZSYgc2NvcGUsIEpT
QXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5VmlldywgdW5zaWduZWQgYWNjZXNzSW5kZXgsIGNv
bnN0IEZ1bmMmIGZ1bmMpCiB7CiAgICAgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4q
IHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4qPih0
eXBlZEFycmF5Vmlldyk7CiAgICAgCiAgICAgZG91YmxlIGV4dHJhQXJnc1tGdW5jOjpudW1FeHRy
YUFyZ3MgKyAxXTsgLy8gQWRkIDEgdG8gYXZvaWQgMCBzaXplIGFycmF5IGVycm9yIGluIFZTLgog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGdW5jOjpudW1FeHRyYUFyZ3M7ICsraSkgewot
ICAgICAgICBkb3VibGUgdmFsdWUgPSBhcmdzWzIgKyBpXS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgZG91YmxlIHZhbHVlID0gYXJnc1syICsgaV0udG9JbnRlZ2VyT3JJbmZpbml0
eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwogICAgICAgICBleHRyYUFyZ3NbaV0gPSB2YWx1
ZTsKICAgICB9CiAKKyAgICBpZiAodHlwZWRBcnJheS0+aXNEZXRhY2hlZCgpKQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVm
ZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKKwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoZnVuYyh0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNjZXNzSW5kZXgsIGV4dHJh
QXJncykpOwogfQogCi11bnNpZ25lZCB2YWxpZGF0ZWRBY2Nlc3NJbmRleChWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYWNjZXNzSW5kZXhWYWx1ZSwgSlNBcnJh
eUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3KQorc3RhdGljIHVuc2lnbmVkIHZhbGlkYXRlQXRv
bWljQWNjZXNzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheUJ1
ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3LCBKU1ZhbHVlIGFjY2Vzc0luZGV4VmFsdWUpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGlmIChVTkxJS0VM
WSghYWNjZXNzSW5kZXhWYWx1ZS5pc0ludDMyKCkpKSB7Ci0gICAgICAgIGRvdWJsZSBhY2Nlc3NJ
bmRleERvdWJsZSA9IGFjY2Vzc0luZGV4VmFsdWUudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKKyAg
ICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IDA7CisgICAgaWYgKExJS0VMWShhY2Nlc3NJbmRleFZh
bHVlLmlzVUludDMyKCkpKQorICAgICAgICBhY2Nlc3NJbmRleCA9IGFjY2Vzc0luZGV4VmFsdWUu
YXNVSW50MzIoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYWNjZXNzSW5kZXggPSBhY2Nlc3NJbmRl
eFZhbHVlLnRvSW5kZXgoZ2xvYmFsT2JqZWN0LCAiYWNjZXNzSW5kZXgiKTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7Ci0gICAgICAgIGlmIChhY2Nlc3NJbmRleERvdWJs
ZSA9PSAwKQotICAgICAgICAgICAgYWNjZXNzSW5kZXhWYWx1ZSA9IGpzTnVtYmVyKDApOwotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFjY2Vzc0luZGV4VmFsdWUgPSBqc051bWJlcihhY2Nl
c3NJbmRleERvdWJsZSk7Ci0gICAgICAgICAgICBpZiAoIWFjY2Vzc0luZGV4VmFsdWUuaXNJbnQz
MigpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJBY2Nlc3MgaW5kZXggaXMgbm90IGFuIGludGVnZXIuIl9zKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQogICAgIH0KLSAgICBpbnQzMl90
IGFjY2Vzc0luZGV4ID0gYWNjZXNzSW5kZXhWYWx1ZS5hc0ludDMyKCk7CiAgICAgCiAgICAgQVNT
RVJUKHR5cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSA8PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSU5U
X01BWCkpOwotICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYWNjZXNzSW5kZXgpID49IHR5
cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSkgeworICAgIGlmIChhY2Nlc3NJbmRleCA+PSB0eXBlZEFy
cmF5Vmlldy0+bGVuZ3RoKCkpIHsKICAgICAgICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJBY2Nlc3MgaW5kZXggb3V0IG9mIGJvdW5kcyBmb3IgYXRvbWljIGFjY2Vzcy4i
X3MpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMjksNTUgKzEyNyw4OSBAQCB1bnNp
Z25lZCB2YWxpZGF0ZWRBY2Nlc3NJbmRleChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgYWNjZQogICAgIHJldHVybiBhY2Nlc3NJbmRleDsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgRnVuYz4KLUVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdz
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJn
cywgY29uc3QgRnVuYyYgZnVuYykKK3N0YXRpYyBKU0FycmF5QnVmZmVyVmlldyogdmFsaWRhdGVU
eXBlZEFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdHlwZWRBcnJh
eVZhbHVlKQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU1ZhbHVlIHR5cGVkQXJyYXlW
YWx1ZSA9IGFyZ3NbMF07CiAgICAgaWYgKCF0eXBlZEFycmF5VmFsdWUuaXNDZWxsKCkpIHsKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGFy
Z3VtZW50IG11c3QgYmUgYSBjZWxsLiJfcyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJBcmd1bWVudCBuZWVkcyB0byBiZSBhIHR5cGVkIGFycmF5LiJfcyk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKKwogICAgIEpTQ2VsbCogdHlwZWRBcnJheUNl
bGwgPSB0eXBlZEFycmF5VmFsdWUuYXNDZWxsKCk7Ci0gICAgCi0gICAgSlNUeXBlIHR5cGUgPSB0
eXBlZEFycmF5Q2VsbC0+dHlwZSgpOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgSW50
OEFycmF5VHlwZToKLSAgICBjYXNlIEludDE2QXJyYXlUeXBlOgotICAgIGNhc2UgSW50MzJBcnJh
eVR5cGU6Ci0gICAgY2FzZSBVaW50OEFycmF5VHlwZToKLSAgICBjYXNlIFVpbnQxNkFycmF5VHlw
ZToKLSAgICBjYXNlIFVpbnQzMkFycmF5VHlwZToKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFy
cmF5IGFyZ3VtZW50IG11c3QgYmUgYW4gSW50OEFycmF5LCBJbnQxNkFycmF5LCBJbnQzMkFycmF5
LCBVaW50OEFycmF5LCBVaW50MTZBcnJheSwgb3IgVWludDMyQXJyYXkuIl9zKTsKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoIWlzVHlwZWRW
aWV3KHR5cGVkQXJyYXlDZWxsLT5jbGFzc0luZm8odm0pLT50eXBlZEFycmF5U3RvcmFnZVR5cGUp
KSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcmd1bWVu
dCBuZWVkcyB0byBiZSBhIHR5cGVkIGFycmF5LiJfcyk7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICAKLSAgICBKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheVZpZXcgPSBq
c0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih0eXBlZEFycmF5Q2VsbCk7Ci0gICAgaWYgKCF0eXBl
ZEFycmF5Vmlldy0+aXNTaGFyZWQoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQgbXVzdCB3cmFwIGEgU2hhcmVkQXJy
YXlCdWZmZXIuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5ID0ganNDYXN0PEpTQXJy
YXlCdWZmZXJWaWV3Kj4odHlwZWRBcnJheUNlbGwpOworICAgIGlmICh0eXBlZEFycmF5LT5pc0Rl
dGFjaGVkKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IkFyZ3VtZW50IHR5cGVkIGFycmF5IGlzIGRldGFjaGVkLiJfcyk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KLSAgICAKLSAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRl
ZEFjY2Vzc0luZGV4KHZtLCBnbG9iYWxPYmplY3QsIGFyZ3NbMV0sIHR5cGVkQXJyYXlWaWV3KTsK
LSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSkpOwotICAgIAotICAgIHN3aXRjaCAodHlwZSkgeworICAgIHJldHVybiB0eXBlZEFycmF5
OworfQorCitlbnVtIGNsYXNzIFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlIHsgUmVhZCwgV3JpdGUg
fTsKK3RlbXBsYXRlPFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlIG1vZGU+CitpbmxpbmUgSlNBcnJh
eUJ1ZmZlclZpZXcqIHZhbGlkYXRlSW50ZWdlclR5cGVkQXJyYXkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB0eXBlZEFycmF5VmFsdWUpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5ID0gdmFsaWRhdGVUeXBlZEFy
cmF5KGdsb2JhbE9iamVjdCwgdHlwZWRBcnJheVZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgY29uc3RleHByIChtb2RlID09IFR5cGVkQXJyYXlP
cGVyYXRpb25Nb2RlOjpXcml0ZSkgeworICAgICAgICBzd2l0Y2ggKHR5cGVkQXJyYXktPnR5cGUo
KSkgeworICAgICAgICBjYXNlIEludDMyQXJyYXlUeXBlOgorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQgbXVzdCBiZSBhbiBJbnQzMkFycmF5LiJfcyk7
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgc3dpdGNoICh0eXBlZEFycmF5LT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBJbnQ4QXJyYXlU
eXBlOgorICAgICAgICBjYXNlIEludDE2QXJyYXlUeXBlOgorICAgICAgICBjYXNlIEludDMyQXJy
YXlUeXBlOgorICAgICAgICBjYXNlIFVpbnQ4QXJyYXlUeXBlOgorICAgICAgICBjYXNlIFVpbnQx
NkFycmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50MzJBcnJheVR5cGU6CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBhcmd1bWVudCBtdXN0IGJlIGFuIEludDhBcnJh
eSwgSW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDhBcnJheSwgVWludDE2QXJyYXksIG9yIFVp
bnQzMkFycmF5LiJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiB0eXBlZEFycmF5OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgor
RW5jb2RlZEpTVmFsdWUgYXRvbWljUmVhZE1vZGlmeVdyaXRlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywgY29uc3QgRnVuYyYgZnVuYykK
K3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0Fy
cmF5QnVmZmVyVmlldyogdHlwZWRBcnJheVZpZXcgPSB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5
PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpSZWFkPihnbG9iYWxPYmplY3QsIGFyZ3NbMF0pOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICB1bnNpZ25lZCBhY2Nl
c3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNjZXNzKHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJy
YXlWaWV3LCBhcmdzWzFdKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
CisgICAgc3dpdGNoICh0eXBlZEFycmF5Vmlldy0+dHlwZSgpKSB7CiAgICAgY2FzZSBJbnQ4QXJy
YXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPEludDhB
ZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNz
SW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxJ
bnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFj
Y2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIEludDE2QXJyYXlUeXBlOgotICAgICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0
LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAgICAg
ICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8SW50MTZBZGFwdG9yPihnbG9iYWxP
YmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOwog
ICAgIGNhc2UgSW50MzJBcnJheVR5cGU6Ci0gICAgICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25X
aXRoQXJnc0Nhc2U8SW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBl
ZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVh
ZE1vZGlmeVdyaXRlQ2FzZTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUs
IHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CiAgICAgY2FzZSBVaW50OEFycmF5
VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxVaW50OEFk
YXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJ
bmRleCwgZnVuYyk7CisgICAgICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlPFVp
bnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFj
Y2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIFVpbnQxNkFycmF5VHlwZToKLSAgICAgICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxVaW50MTZBZGFwdG9yPihnbG9iYWxPYmpl
Y3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAg
ICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxVaW50MTZBZGFwdG9yPihnbG9i
YWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMp
OwogICAgIGNhc2UgVWludDMyQXJyYXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0
aW9uV2l0aEFyZ3NDYXNlPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUs
IHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAgICAgIHJldHVybiBhdG9t
aWNSZWFkTW9kaWZ5V3JpdGVDYXNlPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywg
c2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTE4NSwxMiArMjE3LDEyIEBAIEVuY29k
ZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+Ci1FbmNvZGVk
SlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgRnVuYyYgZnVuYykKK0VuY29kZWRKU1Zh
bHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgRnVuYyYgZnVuYykKIHsKICAgICBKU1ZhbHVlIGFy
Z3NbMiArIEZ1bmM6Om51bUV4dHJhQXJnc107CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMiArIEZ1
bmM6Om51bUV4dHJhQXJnczsgaS0tOykKICAgICAgICAgYXJnc1tpXSA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoaSk7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBmdW5jKTsKKyAgICByZXR1cm4gYXRvbWljUmVh
ZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBmdW5j
KTsKIH0KIAogc3RydWN0IEFkZEZ1bmMgewpAQCAtMzE0LDIyICszNDYsMjIgQEAgRW5jb2RlZEpT
VmFsdWUgaXNMb2NrRnJlZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFy
ZykKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jQWRkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQWRkRnVu
YygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBBZGRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWlj
c0Z1bmNBbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3Jp
dGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFuZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0NvbXBhcmVFeGNoYW5nZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRv
bWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIENvbXBhcmVFeGNo
YW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgQ29tcGFyZUV4Y2hhbmdlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jRXhjaGFuZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJh
dGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBFeGNoYW5nZUZ1bmMoKSk7Cisg
ICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
RXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1
bmNJc0xvY2tGcmVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQpAQCAtMzM5LDcxICszNzEsNTcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGF0b21pY3NGdW5jSXNMb2NrRnJlZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMK
IAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jTG9hZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
YXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIExvYWRGdW5j
KCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIExvYWRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWlj
c0Z1bmNPciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIE9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRl
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhdG9taWNzRnVuY1N0b3JlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25X
aXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgU3RvcmVGdW5jKCkpOworICAgIHJldHVy
biBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFN0b3JlRnVu
YygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jU3ViLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAg
IHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
U3ViRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBTdWJGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YXRvbWljc0Z1bmNXYWl0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgCi0gICAgSlNJbnQzMkFy
cmF5KiB0eXBlZEFycmF5ID0ganNEeW5hbWljQ2FzdDxKU0ludDMyQXJyYXkqPih2bSwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCF0eXBlZEFycmF5KSB7Ci0gICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBmb3Igd2FpdC93YWtl
IG11c3QgYmUgYW4gSW50MzJBcnJheS4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAgICAKKworICAgIGF1dG8qIHR5cGVkQXJyYXlC
dWZmZXIgPSB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2Rl
OjpXcml0ZT4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8qIHR5cGVkQXJyYXkgPSBqc0Nh
c3Q8SlNJbnQzMkFycmF5Kj4odHlwZWRBcnJheUJ1ZmZlcik7CisKICAgICBpZiAoIXR5cGVkQXJy
YXktPmlzU2hhcmVkKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L3dha2UgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlC
dWZmZXIuIl9zKTsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlR5cGVkIGFycmF5IGZvciB3YWl0L25vdGlmeSBtdXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1ZmZl
ci4iX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIH0KIAotICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRhdGVkQWNjZXNzSW5kZXgo
dm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgdHlwZWRBcnJheSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpKTsKLSAgICAKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNj
ZXNzKHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJyYXksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKICAgICBpbnQzMl90KiBw
dHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNjZXNzSW5kZXg7Ci0gICAgCisKICAg
ICBpbnQzMl90IGV4cGVjdGVkVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDIpLnRvSW50MzIo
Z2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAorCiAgICAgZG91YmxlIHRpbWVvdXRJbk1pbGxp
c2Vjb25kcyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMykudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSkpOwotICAgIAorICAgIFNlY29uZHMgdGltZW91dCA9IFNlY29uZHM6OmluZmluaXR5KCk7
CisgICAgaWYgKCFzdGQ6OmlzbmFuKHRpbWVvdXRJbk1pbGxpc2Vjb25kcykpCisgICAgICAgIHRp
bWVvdXQgPSBzdGQ6Om1heChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXRJbk1pbGxp
c2Vjb25kcyksIDBfcyk7CisKICAgICBpZiAoIXZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPmlz
QXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhyZWFkKCkpIHsKICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkF0b21pY3Mud2FpdCBjYW5ub3QgYmUgY2FsbGVk
IGZyb20gdGhlIGN1cnJlbnQgdGhyZWFkLiJfcyk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQotICAgIAotICAgIFNlY29uZHMgdGltZW91dCA9
IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dEluTWlsbGlzZWNvbmRzKTsKLQotICAg
IC8vIFRoaXMgY292ZXJzIHRoZSBwcm9wb3NlZCBydWxlOgotICAgIC8vCi0gICAgLy8gNC4gSWYg
dGltZW91dCBpcyBub3QgcHJvdmlkZWQgb3IgaXMgdW5kZWZpbmVkIHRoZW4gbGV0IHQgYmUgK2lu
Zi4gT3RoZXJ3aXNlOgotICAgIC8vICAgICBhLiBMZXQgcSBiZSA/IFRvTnVtYmVyKHRpbWVvdXQp
LgotICAgIC8vICAgICBiLiBJZiBxIGlzIE5hTiB0aGVuIGxldCB0IGJlICtpbmYsIG90aGVyd2lz
ZSBsZXQgdCBiZSBtYXgoMCwgcSkuCi0gICAgLy8KLSAgICAvLyBjYWxsRnJhbWUtPmFyZ3VtZW50
KDMpIHJldHVybnMgdW5kZWZpbmVkIGlmIGl0J3Mgbm90IHByb3ZpZGVkIGFuZCBUb051bWJlcih1
bmRlZmluZWQpIHJldHVybnMgTmFOLAotICAgIC8vIHNvIE5hTiBpcyB0aGUgb25seSBzcGVjaWFs
IGNhc2UuCi0gICAgaWYgKCFzdGQ6OmlzbmFuKHRpbWVvdXQpKQotICAgICAgICB0aW1lb3V0ID0g
c3RkOjptYXgoMF9zLCB0aW1lb3V0KTsKLSAgICBlbHNlCi0gICAgICAgIHRpbWVvdXQgPSBTZWNv
bmRzOjppbmZpbml0eSgpOwotICAgIAorCiAgICAgYm9vbCBkaWRQYXNzVmFsaWRhdGlvbiA9IGZh
bHNlOwogICAgIFBhcmtpbmdMb3Q6OlBhcmtSZXN1bHQgcmVzdWx0OwogICAgIHsKQEAgLTQyNyw0
MSArNDQ1LDM4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1dhaXQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1N0cmluZyh2bSwgcmVzdWx0U3RyaW5nKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhdG9taWNzRnVuY1dha2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWlj
c0Z1bmNOb3RpZnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAKLSAgICBKU0ludDMyQXJyYXkq
IHR5cGVkQXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTSW50MzJBcnJheSo+KHZtLCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXR5cGVkQXJyYXkpIHsKLSAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L3dha2UgbXVz
dCBiZSBhbiBJbnQzMkFycmF5LiJfcyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgfQotICAgIAotICAgIGlmICghdHlwZWRBcnJheS0+aXNTaGFy
ZWQoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlw
ZWQgYXJyYXkgZm9yIHdhaXQvd2FrZSBtdXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1ZmZlci4iX3Mp
OwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0K
IAotICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRhdGVkQWNjZXNzSW5kZXgodm0sIGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgdHlwZWRBcnJheSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsK
LSAgICAKLSAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNj
ZXNzSW5kZXg7Ci0gICAgCisgICAgYXV0byogdHlwZWRBcnJheUJ1ZmZlciA9IHZhbGlkYXRlSW50
ZWdlclR5cGVkQXJyYXk8VHlwZWRBcnJheU9wZXJhdGlvbk1vZGU6OldyaXRlPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgYXV0byogdHlwZWRBcnJheSA9IGpzQ2FzdDxKU0ludDMyQXJyYXkqPih0
eXBlZEFycmF5QnVmZmVyKTsKKworICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRhdGVB
dG9taWNBY2Nlc3Modm0sIGdsb2JhbE9iamVjdCwgdHlwZWRBcnJheSwgY2FsbEZyYW1lLT5hcmd1
bWVudCgxKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKwogICAgIEpT
VmFsdWUgY291bnRWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMik7CiAgICAgdW5zaWduZWQg
Y291bnQgPSBVSU5UX01BWDsKICAgICBpZiAoIWNvdW50VmFsdWUuaXNVbmRlZmluZWQoKSkgewot
ICAgICAgICBpbnQzMl90IGNvdW50SW50ID0gY291bnRWYWx1ZS50b0ludDMyKGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKSk7Ci0gICAgICAgIGNvdW50ID0gc3RkOjptYXgoMCwgY291bnRJbnQpOwor
ICAgICAgICBkb3VibGUgY291bnRJbnQgPSBjb3VudFZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHko
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICAgICAgZG91YmxlIGNvdW50RG91YmxlID0gc3RkOjptYXgoMC4wLCBjb3VudEludCk7Cisg
ICAgICAgIGlmIChjb3VudERvdWJsZSA8IFVJTlRfTUFYKQorICAgICAgICAgICAgY291bnQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oY291bnREb3VibGUpOwogICAgIH0KIAorICAgIGlmICghdHlw
ZWRBcnJheS0+aXNTaGFyZWQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigwKSk7CisKKyAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3Rvcigp
ICsgYWNjZXNzSW5kZXg7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihQYXJr
aW5nTG90Ojp1bnBhcmtDb3VudChwdHIsIGNvdW50KSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oYXRvbWljc0Z1bmNYb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkpOworICAgIHJldHVybiBhdG9t
aWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFhvckZ1bmMoKSk7CiB9
CiAKIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIpCkBAIC00NzIsNyArNDg3
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBZGQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pT
VmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVj
b2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGds
b2JhbE9iamVjdCwgYXJncywgQWRkRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlm
eVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFkZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTQ4MSw3ICs0OTYsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0FuZCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1
ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUo
b3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBBbmRGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3Jp
dGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgQW5kRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
RW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGV4cGVjdGVkLCBFbmNvZGVkSlNW
YWx1ZSBuZXdWYWx1ZSkpCkBAIC00OTAsNyArNTA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG8KICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1
ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGV4cGVjdGVkKSwgSlNWYWx1ZTo6ZGVj
b2RlKG5ld1ZhbHVlKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBn
bG9iYWxPYmplY3QsIGFyZ3MsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0
b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBDb21wYXJlRXhjaGFu
Z2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWlj
c0V4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBvcGVyYW5kKSkKQEAgLTQ5OSw3ICs1MTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXRvbWljc0V4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpk
ZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9t
aWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBFeGNoYW5nZUZ1bmMo
KSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBh
cmdzLCBFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BdG9taWNzSXNMb2NrRnJlZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzaXplKSkKQEAgLTUxNiw3ICs1MzEsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0xvYWQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpk
ZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCl9OwotICAgIHJldHVybiBhdG9taWNP
cGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBMb2FkRnVuYygpKTsKKyAg
ICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIExv
YWRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWlj
c09yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVy
YW5kKSkKQEAgLTUyNSw3ICs1NDAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXRvbWljc09yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAg
SlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUo
aW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVy
YXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBPckZ1bmMoKSk7CisgICAgcmV0
dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBPckZ1bmMo
KSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3RvcmUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQp
KQpAQCAtNTM0LDcgKzU0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
dG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1Zh
bHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRl
eCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFN0b3JlRnVuYygpKTsKKyAgICByZXR1
cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFN0b3JlRnVu
YygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NTdWIs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQp
KQpAQCAtNTQzLDcgKzU1OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
dG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1Zh
bHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRl
eCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFN1YkZ1bmMoKSk7CisgICAgcmV0dXJu
IGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBTdWJGdW5jKCkp
OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1hvciwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCkBA
IC01NTIsNyArNTY3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21p
Y3NYb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUg
YXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwg
SlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0
aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgWG9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRv
bWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFhvckZ1bmMoKSk7CiB9
CiAKIElHTk9SRV9XQVJOSU5HU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IGQ5NWJkOWJmNjRkZmUzMGE0NGM0MjJiMjIz
OTI0YzFhYmEzOWZjZDUuLmMwZmEyMjg3NjQ0NDFhZDZhNjNhNGUwNmRjZjA0Y2I1YTQ3YWI5ZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VB
Q0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAgIG1hY3JvKEFycmF5KSBcCiAgICAgbWFjcm8o
QXJyYXlCdWZmZXIpIFwKKyAgICBtYWNybyhBdG9taWNzKSBcCiAgICAgbWFjcm8oQllURVNfUEVS
X0VMRU1FTlQpIFwKICAgICBtYWNybyhCaWdJbnQpIFwKICAgICBtYWNybyhCb29sZWFuKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCA4OTZjMWNj
ZGE3ZGM4NDAwNTgwZjUyNjYzMTEyNThjNDRhMzY3YjdhLi4yNzI1M2UzNDllYjBkMjJmMGFmYjJm
MzAzNjcxMDFjNDRmOGI0MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAKQEAgLTI2MSw2ICsyNjEsOCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1l
KEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiQXRvbWljc0lzTG9ja0ZyZWVJ
bnRyaW5zaWMiOwogICAgIGNhc2UgQXRvbWljc0xvYWRJbnRyaW5zaWM6CiAgICAgICAgIHJldHVy
biAiQXRvbWljc0xvYWRJbnRyaW5zaWMiOworICAgIGNhc2UgQXRvbWljc05vdGlmeUludHJpbnNp
YzoKKyAgICAgICAgcmV0dXJuICJBdG9taWNzTm90aWZ5SW50cmluc2ljIjsKICAgICBjYXNlIEF0
b21pY3NPckludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJBdG9taWNzT3JJbnRyaW5zaWMiOwog
ICAgIGNhc2UgQXRvbWljc1N0b3JlSW50cmluc2ljOgpAQCAtMjY5LDggKzI3MSw2IEBAIGNvbnN0
IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJu
ICJBdG9taWNzU3ViSW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NXYWl0SW50cmluc2ljOgog
ICAgICAgICByZXR1cm4gIkF0b21pY3NXYWl0SW50cmluc2ljIjsKLSAgICBjYXNlIEF0b21pY3NX
YWtlSW50cmluc2ljOgotICAgICAgICByZXR1cm4gIkF0b21pY3NXYWtlSW50cmluc2ljIjsKICAg
ICBjYXNlIEF0b21pY3NYb3JJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQXRvbWljc1hvcklu
dHJpbnNpYyI7CiAgICAgY2FzZSBQYXJzZUludEludHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggYjM5YzU2NTEwNDUxYzEyZTlhZmJkOWYyODlh
ODViYTNiNzBkN2M0Ni4uNWNmMjUwZTk3MTM0N2IyNTY0OGVhNmM2ZDFkYjc1ZDk1MjVhODFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTE0NiwxMSAr
MTQ2LDExIEBAIGVudW0gSW50cmluc2ljIDogdWludDhfdCB7CiAgICAgQXRvbWljc0V4Y2hhbmdl
SW50cmluc2ljLAogICAgIEF0b21pY3NJc0xvY2tGcmVlSW50cmluc2ljLAogICAgIEF0b21pY3NM
b2FkSW50cmluc2ljLAorICAgIEF0b21pY3NOb3RpZnlJbnRyaW5zaWMsCiAgICAgQXRvbWljc09y
SW50cmluc2ljLAogICAgIEF0b21pY3NTdG9yZUludHJpbnNpYywKICAgICBBdG9taWNzU3ViSW50
cmluc2ljLAogICAgIEF0b21pY3NXYWl0SW50cmluc2ljLAotICAgIEF0b21pY3NXYWtlSW50cmlu
c2ljLAogICAgIEF0b21pY3NYb3JJbnRyaW5zaWMsCiAgICAgUGFyc2VJbnRJbnRyaW5zaWMsCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZl
clByb3RvdHlwZS5jcHAKaW5kZXggM2QzNjE4N2NiOGNiNzYxODU0NTQxNjA2Nzc1OWU0YzI2OTNk
ZGI2MS4uMGViYzFkYzYyYTc4MDVkZWVhMTI5YjcyYjYxZjExN2M3OGFlZmU2YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOwogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRl
TGVuZ3RoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVm
ZmVyUHJvdG9GdW5jU2xpY2UpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKIAogSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCkBAIC04Myw2ICs4NCwzNiBAQCBK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVu
Z3RoLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+aW1wbCgpLT5ieXRlTGVuZ3RoKCkpKSk7
CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvRnVu
Y1NsaWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0FycmF5QnVmZmVyKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCkpOworICAgIGlmICghdGhpc09iamVjdCB8fCAhdGhpc09iamVjdC0+aW1wbCgpLT5pc1No
YXJlZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiUmVjZWl2ZXIgb2Ygc2xpY2UgbXVzdCBiZSBhbiBTaGFyZWRBcnJheUJ1ZmZlci4iX3Mp
OworCisgICAgZG91YmxlIGJlZ2luID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXIo
Z2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKKworICAgIGRvdWJsZSBlbmQ7CisgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50
KDEpLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgZW5kID0gY2FsbEZyYW1lLT51bmNoZWNrZWRB
cmd1bWVudCgxKS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIGVu
ZCA9IHRoaXNPYmplY3QtPmltcGwoKS0+Ynl0ZUxlbmd0aCgpOworCisgICAgYXV0byBuZXdCdWZm
ZXIgPSB0aGlzT2JqZWN0LT5pbXBsKCktPnNsaWNlKGJlZ2luLCBlbmQpOworICAgIGlmICghbmV3
QnVmZmVyKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKSk7CisKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUobmV3QnVmZmVyLT5zaGFyaW5nTW9k
ZSgpKTsKKworICAgIEpTQXJyYXlCdWZmZXIqIHJlc3VsdCA9IEpTQXJyYXlCdWZmZXI6OmNyZWF0
ZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKG5ld0J1ZmZlcikpOworCisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOworfQorCiAvLyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNj
cmlwdF9zaGFyZWRtZW0vc2htZW0uaHRtbCNTdHJ1Y3R1cmVkRGF0YS5TaGFyZWRBcnJheUJ1ZmZl
ci5wcm90b3R5cGUuZ2V0X2J5dGVMZW5ndGgKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzaGFy
ZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CkBAIC0xMTQsMTIgKzE0NSwx
NCBAQCB2b2lkIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1Rh
Z1N5bWJvbCwganNTdHJpbmcodm0sIGFycmF5QnVmZmVyU2hhcmluZ01vZGVOYW1lKHNoYXJpbmdN
b2RlKSksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSk7Ci0gICAgaWYgKHNoYXJpbmdNb2RlID09IEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpCisgICAgaWYgKHNoYXJpbmdNb2RlID09IEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpIHsKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAg
ICAgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPmJ5dGVMZW5ndGgsIGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsK
LSAgICBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIHNoYXJlZEFycmF5QnVmZmVy
UHJvdG9GdW5jU2xpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAyKTsKICAgICAgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVMZW5ndGgsIHNoYXJlZEFycmF5QnVmZmVyUHJvdG9H
ZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICB9CiB9CiAKIEpTQXJyYXlCdWZmZXJQcm90b3R5
cGUqIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUJ1ZmZlclNoYXJpbmdN
b2RlIHNoYXJpbmdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCmluZGV4IGI1YTliYjkzNjlmNTE2ZDRlMzU5OTQ1NDBkMWE0Zjg5OTFhOTIyNGUuLjJlYjJh
YjYzZmJjMDcyNDQ0OWE3NWZmZTUzMGVjYjFhNmFiMDU1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTI5NCw2ICsyOTQsNyBAQCBjbGFzcyBKU1Zh
bHVlIHsKICAgICAvLyBJbnRlZ2VyIGNvbnZlcnNpb25zLgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IGRvdWJsZSB0b0ludGVnZXIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU19FWFBPUlRf
UFJJVkFURSBkb3VibGUgdG9JbnRlZ2VyUHJlc2VydmVOYU4oSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKKyAgICBkb3VibGUgdG9JbnRlZ2VyT3JJbmZpbml0eShKU0dsb2JhbE9iamVjdCopIGNvbnN0
OwogICAgIGludDMyX3QgdG9JbnQzMihKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIHVpbnQz
Ml90IHRvVUludDMyKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgdWludDMyX3QgdG9JbmRl
eChKU0dsb2JhbE9iamVjdCosIGNvbnN0IGNoYXIqIGVycm9yTmFtZSkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBm
ZDY4MmJiYjYzOTU2OGRmZWQyNWU0ZGFhNGFjMWRhYjk3OTI2ZWVmLi5mYzE4MjM1Mzk1NDc5OTRi
MzIwMTczMjBmMmU4ZThmOGE4NmZhMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTc5LDYgKzc5LDE5IEBAIGlubGluZSB1
aW50MzJfdCBKU1ZhbHVlOjp0b0luZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IGNoYXIqIGVycm9yCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU0M6OnRvSW50
MzIoZCkpOwogfQogCisvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlcm9y
aW5maW5pdHkKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6dG9JbnRlZ2VyT3JJbmZpbml0eShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisg
ICAgICAgIHJldHVybiBhc0ludDMyKCk7CisgICAgZG91YmxlIGQgPSB0b051bWJlcihnbG9iYWxP
YmplY3QpOworICAgIGlmIChzdGQ6OmlzbmFuKGQpIHx8IGQgPT0gMCkKKyAgICAgICAgcmV0dXJu
IDAuMDsKKyAgICBpZiAoc3RkOjppc2luZihkKSkKKyAgICAgICAgcmV0dXJuIGQ7CisgICAgcmV0
dXJuIHRydW5jKGQpOworfQorCiBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VJbnQzMigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlzSW50MzIoKSAmJiBhc0ludDMyKCkgPj0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmluZGV4IDBjY2ZhMDAxYTZmN2M0
NTkxOGRjMDNlZjY4ZTljNGZkNDJjM2Y4ZmEuLmZmNGMwMDJjYWJkOGZlMTNmZTM4MDk4ZjlhYjI1
YThiNzQ0MWRlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5j
dGlvbnMuaApAQCAtMzg4LDcgKzM4OCw2IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldChWTSYsCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLS8vICAgIFZNJiB2bSA9
IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgLy8gMjIuMi4zLjIxCkBAIC00MDUsNyArNDA0LDYgQEAgQUxXQVlTX0lO
TElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNl
KFZNJiB2bSwgSlNHbG8KIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEFMV0FZU19JTkxJ
TkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CiB7Ci0vLyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIC8vIDIyLjIuMy4yNQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg0OGU0
MDE2YmY2MTE4YmJjZDBhYjZmMDg3MjkzMjkyMjg1NzQ4MTYuLmI1YzVmMTQ3MDg4NjEyNjhmMDk0
MTllYjUyZGNmNTk3OTQ2N2Y0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiQXN5bmNHZW5lcmF0b3JQ
cm90b3R5cGUuaCIKICNpbmNsdWRlICJBc3luY0l0ZXJhdG9yUHJvdG90eXBlLmgiCisjaW5jbHVk
ZSAiQXRvbWljc09iamVjdC5oIgogI2luY2x1ZGUgIkJpZ0ludENvbnN0cnVjdG9yLmgiCiAjaW5j
bHVkZSAiQmlnSW50T2JqZWN0LmgiCiAjaW5jbHVkZSAiQmlnSW50UHJvdG90eXBlLmgiCkBAIC04
MjgsMTAgKzgyOSwxMiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICAg
ICAgW10gKGNvbnN0IEluaXRpYWxpemVyPEpTRnVuY3Rpb24+JiBpbml0KSB7CiAgICAgICAgICAg
ICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwgaW5pdC5vd25lciwgMSwgaW5p
dC52bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUZsb2F0LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VG
bG9hdCwgTm9JbnRyaW5zaWMpKTsKICAgICAgICAgfSk7Ci0gICAgCisKICNpZiBFTkFCTEUoU0hB
UkVEX0FSUkFZX0JVRkZFUikKLSAgICBtX3NoYXJlZEFycmF5QnVmZmVyUHJvdG90eXBlLnNldCh2
bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0FycmF5
QnVmZmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90
eXBlLmdldCgpKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6U2hhcmVkKSk7Ci0gICAgbV9zaGFy
ZWRBcnJheUJ1ZmZlclN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTQXJyYXlCdWZmZXI6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5nZXQoKSkp
OworICAgIGlmIChPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpKSB7CisgICAgICAgIG1f
c2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyUHJv
dG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBBcnJheUJ1ZmZlclNo
YXJpbmdNb2RlOjpTaGFyZWQpKTsKKyAgICAgICAgbV9zaGFyZWRBcnJheUJ1ZmZlclN0cnVjdHVy
ZS5zZXQodm0sIHRoaXMsIEpTQXJyYXlCdWZmZXI6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
bV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5nZXQoKSkpOworICAgIH0KICNlbmRpZgogCiAg
ICAgbV9pdGVyYXRvclByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEl0ZXJhdG9yUHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRo
aXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwpAQCAtODk5LDEwICs5MDIsMTMgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgCiAjaWYgRU5BQkxFKFNIQVJFRF9B
UlJBWV9CVUZGRVIpCiAgICAgSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKiBzaGFyZWRB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yID0gbnVsbHB0cjsKLSAgICBzaGFyZWRBcnJheUJ1ZmZlckNv
bnN0cnVjdG9yID0gSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpT
U2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBt
X2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5n
ZXQoKSwgbV9zcGVjaWVzR2V0dGVyU2V0dGVyLmdldCgpKTsKLSAgICBtX3NoYXJlZEFycmF5QnVm
ZmVyUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+Y29uc3RydWN0b3IsIHNoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3IsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBBdG9taWNz
T2JqZWN0KiBhdG9taWNzT2JqZWN0ID0gbnVsbHB0cjsKKyAgICBpZiAoT3B0aW9uczo6dXNlU2hh
cmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
ID0gSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpTU2hhcmVkQXJy
YXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSwgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5nZXQoKSwgbV9z
cGVjaWVzR2V0dGVyU2V0dGVyLmdldCgpKTsKKyAgICAgICAgbV9zaGFyZWRBcnJheUJ1ZmZlclBy
b3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PmNvbnN0cnVjdG9yLCBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKLSAgICBBdG9taWNzT2Jq
ZWN0KiBhdG9taWNzT2JqZWN0ID0gQXRvbWljc09iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBBdG9t
aWNzT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSk7CisgICAgICAgIGF0b21pY3NPYmplY3QgPSBBdG9taWNzT2JqZWN0OjpjcmVhdGUodm0s
IHRoaXMsIEF0b21pY3NPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQ
cm90b3R5cGUuZ2V0KCkpKTsKKyAgICB9CiAjZW5kaWYKIAogI2RlZmluZSBDUkVBVEVfQ09OU1RS
VUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUs
IGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxhZykgXApAQCAt
OTgyLDggKzk4OCwxMCBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1lICMj
IENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5SZWdFeHAsIHJlZ0V4cENvbnN0
cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAKICNpZiBFTkFCTEUoU0hBUkVEX0FSUkFZX0JVRkZFUikKLSAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+U2hhcmVkQXJyYXlCdWZmZXIsIHNo
YXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIkF0b21pY3MiKSwgYXRvbWljc09iamVjdCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAg
IGlmIChPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpKSB7CisgICAgICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5TaGFyZWRBcnJheUJ1ZmZl
ciwgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+QXRvbWljcywgYXRvbWljc09iamVjdCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIH0K
ICNlbmRpZgogCiAjZGVmaW5lIFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRh
bE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3Rv
dHlwZUJhc2UsIGZlYXR1cmVGbGFnKSBcCkBAIC0xMjE0LDkgKzEyMjIsMTUgQEAgY2FwaXRhbE5h
bWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFn
ID8gY2FwaXRhbE5hbWUKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2ln
bmVkPihMaW5rVGltZUNvbnN0YW50Ojppc1R5cGVkQXJyYXlWaWV3KV0uaW5pdExhdGVyKFtdIChj
b25zdCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChK
U0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5v
d25lciksIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5
VmlldywgSXNUeXBlZEFycmF5Vmlld0ludHJpbnNpYykpOwogICAgICAgICB9KTsKKyAgICBtX2xp
bmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojpp
c1NoYXJlZFR5cGVkQXJyYXlWaWV3KV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxK
U0NlbGw+JiBpbml0KSB7CisgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUo
aW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygp
LCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNTaGFyZWRUeXBlZEFycmF5VmlldykpOworICAg
ICAgICB9KTsKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihM
aW5rVGltZUNvbnN0YW50Ojppc0RldGFjaGVkKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFs
aXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpj
cmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDEsIFN0
cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hlZCkpOwogICAgICAgICB9
KTsKKyAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGlt
ZUNvbnN0YW50Ojp0eXBlZEFycmF5RGVmYXVsdENvbXBhcmF0b3IpXS5pbml0TGF0ZXIoW10gKGNv
bnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQuc2V0KEpT
RnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93
bmVyKSwgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNEZWZhdWx0Q29tcGFy
YXRvcikpOworICAgICAgICB9KTsKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0
PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojp0eXBlZEFycmF5U3ViYXJyYXlDcmVhdGUpXS5p
bml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKICAgICAgICAg
ICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxP
YmplY3QqPihpbml0Lm93bmVyKSwgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1
bmNTdWJhcnJheUNyZWF0ZSkpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKaW5k
ZXggNDcwMzAyOWU2Y2MyODkzZDFkNGIwY2M1NTZlZTVmZDU5MWIwMWFlNC4uYmZiNzMyOWQ2MGM5
YjFlNDBlMGYyMjM5N2Y5MmZjN2YwZDYzMTkyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVG
dW5jdGlvbnMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewog
CkBAIC04NSw2ICs4NiwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcsIChKU0dsb2JhbE9iagogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHZhbHVlLmlzQ2VsbCgpICYmIGlzVHlwZWRWaWV3KHZh
bHVlLmFzQ2VsbCgpLT5jbGFzc0luZm8oZ2xvYmFsT2JqZWN0LT52bSgpKS0+dHlwZWRBcnJheVN0
b3JhZ2VUeXBlKSkpOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0lzU2hhcmVkVHlwZWRBcnJheVZpZXcsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgSlNWYWx1ZSB2YWx1ZSA9
IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CisgICAgaWYgKCF2YWx1ZS5pc0NlbGwo
KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKKyAg
ICBpZiAoIWlzVHlwZWRWaWV3KHZhbHVlLmFzQ2VsbCgpLT5jbGFzc0luZm8oZ2xvYmFsT2JqZWN0
LT52bSgpKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2YWx1ZSktPmlzU2hhcmVkKCkpKTsK
K30KKwogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJ
c0RldGFjaGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KDApOwpAQCAtOTIsNiArMTAzLDU4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hlZCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNDYXN0PEpTQXJyYXlCdWZmZXJW
aWV3Kj4oYXJndW1lbnQpLT5pc0RldGFjaGVkKCkpKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNEZWZhdWx0Q29tcGFyYXRvciwgKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIC8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zb3J0CisKKyAgICBKU1Zh
bHVlIHggPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOworICAgIEpTVmFsdWUgeSA9
IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisKKyAgICBpZiAoeC5pc051bWJlcigp
KSB7CisgICAgICAgIEFTU0VSVCh5LmlzTnVtYmVyKCkpOworICAgICAgICBpZiAoeC5pc0ludDMy
KCkgJiYgeS5pc0ludDMyKCkpIHsKKyAgICAgICAgICAgIGludDMyX3QgeEludDMyID0geC5hc0lu
dDMyKCk7CisgICAgICAgICAgICBpbnQzMl90IHlJbnQzMiA9IHkuYXNJbnQzMigpOworICAgICAg
ICAgICAgaWYgKHhJbnQzMiA8IHlJbnQzMikKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgICAgICBpZiAoeEludDMyID4geUludDMy
KQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOwor
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgICAg
IH0KKworICAgICAgICBkb3VibGUgeERvdWJsZSA9IHguYXNOdW1iZXIoKTsKKyAgICAgICAgZG91
YmxlIHlEb3VibGUgPSB5LmFzTnVtYmVyKCk7CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHhEb3Vi
bGUpICYmIHN0ZDo6aXNuYW4oeURvdWJsZSkpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKDApKTsKKyAgICAgICAgaWYgKHN0ZDo6aXNuYW4oeERvdWJsZSkpCisg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAgICAg
aWYgKHN0ZDo6aXNuYW4oeURvdWJsZSkpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgIGlmICh4RG91YmxlIDwgeURvdWJsZSkKKyAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICAgICAgaWYg
KHhEb3VibGUgPiB5RG91YmxlKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcigxKSk7CisgICAgICAgIGlmICh4RG91YmxlID09IDAgJiYgeURvdWJsZSA9PSAwKSB7
CisgICAgICAgICAgICBpZiAoc3RkOjpzaWduYml0KHhEb3VibGUpICYmICFzdGQ6OnNpZ25iaXQo
eURvdWJsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cigtMSkpOworICAgICAgICAgICAgaWYgKCFzdGQ6OnNpZ25iaXQoeERvdWJsZSkgJiYgc3RkOjpz
aWduYml0KHlEb3VibGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoMSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoMCkpOworICAgIH0KKyAgICBBU1NFUlQoeC5pc0JpZ0ludCgpICYmIHkuaXNCaWdJ
bnQoKSk7CisgICAgc3dpdGNoIChjb21wYXJlQmlnSW50KHgsIHkpKSB7CisgICAgY2FzZSBKU0Jp
Z0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1YWw6CisgICAgY2FzZSBKU0JpZ0ludDo6Q29tcGFy
aXNvblJlc3VsdDo6VW5kZWZpbmVkOgorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKDApKTsKKyAgICBjYXNlIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVy
VGhhbjoKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxKSk7CisgICAg
Y2FzZSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW46CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcigwKSk7Cit9CisKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA2Y2Q3YjJhMGQ0ZGMxYzliMmU5NTM3YmYy
N2FhYTA4MjdkNzhiNzUwLi5kMzUzMGZmNmQ2MTRlZmUwZDIyMTI3YzM4Zjk2OTBjMmNjZjIwZWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5oCkBAIC01Miw3ICs1Miw5IEBAIGNsYXNzIEpTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiB9OwogCiBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVk
QXJyYXlWaWV3KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzU2hhcmVkVHlwZWRBcnJheVZpZXcpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hlZCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNEZWZhdWx0Q29tcGFyYXRvcik7CiBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsK
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0
aCk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNH
ZXRPcmlnaW5hbENvbnN0cnVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCmluZGV4IDIyNWUyMjQ4M2QwOWFjMjAzYmNiZWZlNWNiYThkNzUyZjBhZmUw
NzIuLmZlNDM1MmI0ZjZjOTMwYTgxMWQ0NmE2YWRkYzNkZTMxOTE2ZWQzNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNDk0LDYgKzQ5NCw3IEBA
IEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlSklUQ2FnZSgpOwogICAgIHYoQm9vbCwgdXNl
V2Vha1JlZnMsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgV2Vha1JlZiBjb25zdHJ1Y3Rvci4i
KSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGF0ZVRpbWVGb3JtYXREYXlQZXJpb2QsIHRydWUsIE5v
cm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EYXRlVGltZUZvcm1hdCBkYXlQZXJpb2QgZmVhdHVyZS4i
KSBcCiAgICAgdihCb29sLCB1c2VBdE1ldGhvZCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUg
YXQoKSBtZXRob2Qgb24gQXJyYXkgYW5kICVUeXBlZEFycmF5JS4iKSBcCisgICAgdihCb29sLCB1
c2VTaGFyZWRBcnJheUJ1ZmZlciwgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29s
LCB1c2VBcnJheUFsbG9jYXRpb25Qcm9maWxpbmcsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdl
IHdpbGwgdXNlIG91ciBub3JtYWwgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxpbmcuIElmIGZhbHNl
LCB0aGUgYWxsb2NhdGlvbiBwcm9maWxlIHdpbGwgYWx3YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRl
ZC4iKSBcCiAgICAgdihCb29sLCBmb3JjZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwgIklmIHRy
dWUsIGNyZWF0ZV90aGlzIHdpbGwgYWx3YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkg
cHJvdG8gc3RydWN0dXJlLiIpIFwKICAgICB2KEJvb2wsIGZvcmNlTWluaVZNTW9kZSwgZmFsc2Us
IE5vcm1hbCwgIklmIHRydWUsIGl0IHdpbGwgZm9yY2UgbWluaSBWTSBtb2RlIG9uLiIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmNwcAppbmRleCAwMjVmNGFiOTAwOWY2Nzg4NGFjNmVhMDU2ZDM0YjFj
ZjQ4ZjNmMmZhLi5lZjE2MjYyMTc2YWZmMDU0MjkxNzZmZTdkNWM4MDI0ZTAzNTlkOTgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC0zMyw3ICszMywxMSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyKCkgeyB9CitTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6U2ltcGxlVHlwZWRBcnJheUNv
bnRyb2xsZXIoYm9vbCBhbGxvd0F0b21pY3NXYWl0KQorICAgIDogbV9hbGxvd0F0b21pY3NXYWl0
KGFsbG93QXRvbWljc1dhaXQpCit7Cit9CisKIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjp+
U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSB7IH0KIAogSlNBcnJheUJ1ZmZlciogU2ltcGxl
VHlwZWRBcnJheUNvbnRyb2xsZXI6OnRvSlMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFycmF5QnVmZmVyKiBuYXRpdmUp
CkBAIC01NSw3ICs1OSw3IEBAIHZvaWQgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OnJlZ2lz
dGVyV3JhcHBlcihKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKiBuCiAKIGJvb2wgU2ltcGxl
VHlwZWRBcnJheUNvbnRyb2xsZXI6OmlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhyZWFk
KCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9hbGxvd0F0b21pY3NXYWl0Owog
fQogCiBib29sIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IGY3ZTUwYmZiM2QxMGM3MjI3MTU4YmJhYWYxNGRh
NTk5NGRhOTdmZTIuLjIxOWNhZjQyNjMwZTE3MzVhMTVjOTE0ZGRhNWNkYWEzNGRiNjgzMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
Y2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgVHlwZWRBcnJh
eUNvbnRyb2xsZXIgewogcHVibGljOgotICAgIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCk7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoYm9vbCBh
bGxvd0F0b21pY3NXYWl0ID0gdHJ1ZSk7CiAgICAgflNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVy
KCkgZmluYWw7CiAgICAgCiAgICAgSlNBcnJheUJ1ZmZlciogdG9KUyhKU0dsb2JhbE9iamVjdCos
IEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSBmaW5hbDsKQEAgLTYzLDYgKzYzLDcgQEAg
Y2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgVHlwZWRBcnJh
eUNvbnRyb2xsZXIgewogICAgIH07CiAKICAgICBKU0FycmF5QnVmZmVyT3duZXIgbV9vd25lcjsK
KyAgICBib29sIG1fYWxsb3dBdG9taWNzV2FpdCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IDc2YWQyMzU5YTFhN2IzNGVmODk5
ZDQyYjJlYzZlNGQxMGIzZGMyOGQuLjA1YmQ2ODBjYWU2NzUyNGFmNDlkZTU5NzZkOTg2OTQwODUx
YjA5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysrIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtODMwLDcgKzgzMCw3IEBACiAjZW5k
aWYKIAogLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0
eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwotI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZ
X0JVRkZFUiAwCisjZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDEKIAogCiAjaWYg
KChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQ
RSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjU3NWE0MWZmY2I1
NWM2MTM4YmZiYTFlNDk0NjNkYTAyZmU2MjEwMi4uZjQ2YTE1ZjlmNmYyNTU0NWVkMjlhN2U5OGQ0
ZWQ5MzMwOTA0M2MyMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIwNjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
dGVzdDI2Mi9SdW5uZXIucG06CisgICAgICAgIChnZXRGZWF0dXJlRmxhZ3MpOgorCiAyMDIwLTEx
LTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Vi
a2l0c2NtcHldIEFkZCBjaGVja291dCBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3Rlc3QyNjIvUnVubmVyLnBtIGIvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbQppbmRl
eCBlMjM2ZDA1OGExNDhmOWFiMDNkYzVkN2U4NjFjMmI5ZDMyMzhmY2Q4Li5mYjFlNDU3ZThlOTll
NGIwNTI2OGI0MWEzOWY5YTlkYWJjNjczMmU3IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3Rl
c3QyNjIvUnVubmVyLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9SdW5uZXIucG0KQEAg
LTcwMyw2ICs3MDMsMTAgQEAgc3ViIGdldEZlYXR1cmVGbGFncyB7CiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBpZiAoZ3JlcCAkXyBlcSAnQ2FuQmxvY2tJc0ZhbHNlJywgQHskZGF0YS0+e2ZsYWdz
fX0pIHsKKyAgICAgICAgJGZlYXR1cmVGbGFncyAuPSAnIC0tY2FuLWJsb2NrLWlzLWZhbHNlJzsK
KyAgICB9CisKICAgICByZXR1cm4gJGZlYXR1cmVGbGFnczsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMyMjhhYWRm
ZDlhZDgwYjk5MjRlY2E1ZWM4NjQ1MWY4NmFlMjY4MWQuLjA0Zjk3NDU0YWVkYjlkYTU4YmQ5Njk2
ZGM2MmMzZjAzZTA5YmI0NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0xMS0wNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFy
ZWRBcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTEt
MDUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0
aG5dIERldGVybWluZSBhbiBBQUdVSUQgZm9yIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9ycwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNzY4MTRmODRjNzA3MTg2Yjc0MTAxMmYx
YzBiMzY2ZDMzNDdkMGE5Ny4uMTQxZTIxYzVlMDk4ZDk1YmU1NjM4NWNhODhjNjgwYzUwYThlM2Ux
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAt
MTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZS1l
bmFibGUgU2hhcmVkQXJyYXlCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9w
cm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1m
b3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVj
dG9yLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKwogMjAyMC0xMS0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIHdpbmRvdy5ldmVudCBtYXkgZ2V0IHNldCBvbiB3cm9uZyBnbG9iYWwgd2hl
biBkaXNwYXRjaGluZyBhbiBldmVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Np
bmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlz
bS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcv
cHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQt
Zm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAppbmRleCA3
MjUxZGJjMGQxNGQ3YTlmOWIzMGIxMDZmZDdhYWY5NjUwYjdlM2UwLi5jZmEzZTAxNzVhMjdiZWEx
MDU2NjhkM2NlOGU2MjY5NzAyYWUxODFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vz
c2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFs
aXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4gYSBXaW5kb3cgYXNzZXJ0X3Ro
cm93c19qczogZnVuY3Rpb24gIigpID0+IHsKLSAgICBBdG9taWNzLndhaXQodGEsIDAsIDAsIDEw
KTsKLSAgfSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQXRvbWljcyIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBl
RXJyb3IiKQorUEFTUyBbW0NhbkJsb2NrXV0gaW4gYSBXaW5kb3cKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2Ny
aXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdy
YXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVy
ZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTQzZGY4Y2ZhYTJk
Y2UyNTFmYThlNzQ2YTI1NDM5ZmM1YWJiZWU3YS4uNDRiMmVjZjUyMmI3ZjYyMjFhNmE4ZTE3OGYw
YTEyYzhlOTZlZjcwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwt
Mi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJl
cy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9z
Y3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3Jp
cHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LnNlcnZpY2V3b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsMyBAQAogCi1GQUlMIFtbQ2FuQmxvY2tdXSBpbiBh
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkg
PT4gewotICAgIEF0b21pY3Mud2FpdCh0YSwgMCwgMCwgMTApOwotICB9IiB0aHJldyBvYmplY3Qg
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBdG9taWNzIiAoIlJlZmVyZW5j
ZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJv
cigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCitQQVNTIFtbQ2FuQmxv
Y2tdXSBpbiBhIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBw
YXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWph
dmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKaW5kZXggZWJkZDI4ZTc5Y2ZiY2JkYmY0NGI0OWYwMzcwYjY4NWU5YjJiM2U2ZS4u
MGI5ODYwY2NjNTM0NGY1MmRkNzg0NTIxMGI5ZDQyM2MyNWMxNDI4OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2Ny
aXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0
aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtc3VjY2Vzcy5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4g
YSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBdG9taWNz
CitGQUlMIFtbQ2FuQmxvY2tdXSBpbiBhIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIFR5cGVk
IGFycmF5IGZvciB3YWl0L25vdGlmeSBtdXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1ZmZlci4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25z
dHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDA0N2Q1YzU2YzE0YjBlNGRiYzRjOGYwZjA1
NzIzNTUzNmVmZTU3ZTMuLjlhMjQ5MDU3ZjQ5ODI2NDk0NmZiYmU2MzE4YWY3MzJiYWQ1YTdkZWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5
L2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKQEAgLTI1LDUgKzI1LDUgQEAgRkFJTCBPcmRl
ciBvZiBldmFsdWF0aW9uIGZvciBkZXNjcmlwdG9yICh3aXRoIHNoYXJlZCkgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3QKIFBBU1MgWmVybyBpbml0aWFsCiBQQVNTIE5vbi16ZXJvIGluaXRpYWwK
IEZBSUwgU3RyYXkgYXJndW1lbnQgV2ViQXNzZW1ibHkuTWVtb3J5IGV4cGVjdHMgZXhhY3RseSBv
bmUgYXJndW1lbnQKLUZBSUwgU2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnYnVmZmVyVHlwZS5wcm90b3R5cGUnKQorRkFJTCBTaGFyZWQgbWVtb3J5
IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBidWZmZXIgZXhwZWN0ZWQgb2JqZWN0ICJbb2Jq
ZWN0IFNoYXJlZEFycmF5QnVmZmVyXSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZm
ZXJdIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAwNDdk
NWM1NmMxNGIwZTRkYmM0YzhmMGYwNTcyMzU1MzZlZmU1N2UzLi45YTI0OTA1N2Y0OTgyNjQ5NDZm
YmJlNjMxOGFmNzMyYmFkNWE3ZGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTI1LDUgKzI1LDUgQEAgRkFJTCBPcmRlciBvZiBldmFsdWF0aW9uIGZvciBk
ZXNjcmlwdG9yICh3aXRoIHNoYXJlZCkgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3QKIFBBU1Mg
WmVybyBpbml0aWFsCiBQQVNTIE5vbi16ZXJvIGluaXRpYWwKIEZBSUwgU3RyYXkgYXJndW1lbnQg
V2ViQXNzZW1ibHkuTWVtb3J5IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQKLUZBSUwgU2hh
cmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYnVmZmVy
VHlwZS5wcm90b3R5cGUnKQorRkFJTCBTaGFyZWQgbWVtb3J5IGFzc2VydF9lcXVhbHM6IHByb3Rv
dHlwZSBvZiBidWZmZXIgZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IFNoYXJlZEFycmF5QnVmZmVy
XSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZmZXJdIgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvcG9zdE1l
c3NhZ2VfYmxvY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCAwYWNhOTA3MzYzNTczZjY3NTNmYTM2ZGI2ZDNiZWMwOWY2MzgwMzUzLi4w
YzI1YzQxMDdlNjQxOGI2YWY3YWRlMTJhYjhkNjczNzI0Yzc4Zjc1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvcG9zdE1lc3Nh
Z2VfYmxvY2suaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgcG9zdE1lc3NhZ2UgYW5kIGJsb2NrIENh
bid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZEFycmF5QnVmZmVyCitQQVNTIHBvc3RNZXNzYWdlIGFu
ZCBibG9jawogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggMzFlOGE5MWJmNjUwMWE4ZTdhNmM4ZjdmNDgyYzkwZGQ2NTk0ZDI1OC4u
YzlhZDdlOGIwNjBlNzUzZDUwOTUwMjA4MmVhZDBhMjc5NDdkNTg2ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtOTUsOCArOTUs
MTIgQEAgUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdEZyZXF1ZW5jeURhdGEobnVsbCkgdGhy
ZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2EKIFBBU1MgICBBbmFseXNlck5vZGUuZ2V0Qnl0
ZUZyZXF1ZW5jeURhdGEobnVsbCkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5
JykgdG8gQW5hbHlzZXJOb2RlLmdldEJ5dGVGcmVxdWVuY3lEYXRhIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgVWludDhBcnJheSIuCiBQQVNTICAgQW5hbHlzZXJOb2RlLmdldEZsb2F0VGltZURvbWFp
bkRhdGEobnVsbCkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5h
bHlzZXJOb2RlLmdldEZsb2F0VGltZURvbWFpbkRhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBG
bG9hdDMyQXJyYXkiLgogUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRCeXRlVGltZURvbWFpbkRhdGEo
bnVsbCkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5hbHlzZXJO
b2RlLmdldEJ5dGVUaW1lRG9tYWluRGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJy
YXkiLgorUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdEZyZXF1ZW5jeURhdGEoU2hhcmVkQXJy
YXlCdWZmZXIgdmlldykgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8g
QW5hbHlzZXJOb2RlLmdldEZsb2F0RnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IEZsb2F0MzJBcnJheSIuCitQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5dGVGcmVxdWVuY3lEYXRh
KFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdh
cnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRCeXRlRnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIFVpbnQ4QXJyYXkiLgorUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVE
b21haW5EYXRhKFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3Vt
ZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRhIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BBU1MgICBBbmFseXNlck5vZGUu
Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVF
cnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRCeXRlVGltZURv
bWFpbkRhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5Ii4KIFBBU1MgICBBdWRp
b0J1ZmZlci5nZXRDaGFubmVsRGF0YSgyKSB0aHJldyBJbmRleFNpemVFcnJvcjogIkluZGV4IG11
c3QgYmUgbGVzcyB0aGFuIG51bWJlciBvZiBjaGFubmVscy4iLgotUEFTUyA8IFtjcmVhdGVBbmFs
eXNlcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMjQgYXNzZXJ0aW9ucykKK1BBU1Mg
PCBbY3JlYXRlQW5hbHlzZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDI4IGFzc2Vy
dGlvbnMpCiBQQVNTID4gW0luaXQgdGVzdCBub2Rlc10gQ3JlYXRlIHRlc3Qgbm9kZXMgZm9yIHRo
ZSBmb2xsb3dpbmcgdGVzdHMKIFBBU1MgICBub2RlID0gY29udGV4dC5jcmVhdGVHYWluKCkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTICAgbm9kZTIgPSBjb250ZXh0LmNyZWF0ZUdh
aW4oKSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KQEAgLTEzMSw3ICsxMzUsMTAgQEAgUEFT
UyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UobmV3IEZsb2F0MzJBcnJheSgxKSwgbmV3IEZs
b2F0MzJBcnJheSgxKSwgbmV3IEYKIFBBU1MgICBub2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKG51
bGwsIG5ldyBGbG9hdDMyQXJyYXkoMSksIG5ldyBGbG9hdDMyQXJyYXkoMSkpIHRocmV3IFR5cGVF
cnJvcjogIkFyZ3VtZW50IDEgKCdmcmVxdWVuY3lIeicpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0
RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgog
UEFTUyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UobmV3IEZsb2F0MzJBcnJheSgxKSwgbnVs
bCwgbmV3IEZsb2F0MzJBcnJheSgxKSkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMiAoJ21h
Z1Jlc3BvbnNlJykgdG8gQmlxdWFkRmlsdGVyTm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZSBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIEZsb2F0MzJBcnJheSIuCiBQQVNTICAgbm9kZS5nZXRGcmVxdWVu
Y3lSZXNwb25zZShuZXcgRmxvYXQzMkFycmF5KDEpLCBuZXcgRmxvYXQzMkFycmF5KDEpLCBudWxs
KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAzICgncGhhc2VSZXNwb25zZScpIHRvIEJpcXVh
ZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBG
bG9hdDMyQXJyYXkiLgotUEFTUyA8IFtiaXF1YWRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgICBub2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKHNoYXJl
ZF92aWV3LCBub25zaGFyZWRfdmlldywgbm9uc2hhcmVkX3ZpZXcpIHRocmV3IFR5cGVFcnJvcjog
IkFyZ3VtZW50IDEgKCdmcmVxdWVuY3lIeicpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVl
bmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgorUEFTUyAg
IG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2Uobm9uc2hhcmVkX3ZpZXcsIHNoYXJlZF92aWV3LCBu
b25zaGFyZWRfdmlldykgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMiAoJ21hZ1Jlc3BvbnNl
JykgdG8gQmlxdWFkRmlsdGVyTm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEZsb2F0MzJBcnJheSIuCitQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25z
ZShub25zaGFyZWRfdmlldywgbm9uc2hhcmVkX3ZpZXcsIHNoYXJlZF92aWV3KSB0aHJldyBUeXBl
RXJyb3I6ICJBcmd1bWVudCAzICgncGhhc2VSZXNwb25zZScpIHRvIEJpcXVhZEZpbHRlck5vZGUu
Z2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXki
LgorUEFTUyA8IFtiaXF1YWRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDcgYXNzZXJ0
aW9ucykKIFBBU1MgPiBbb2ZmbGluZS1hdWRpby1jb250ZXh0XSBzdXBwb3J0cyAzMiBjaGFubmVs
cwogUEFTUyAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDMyLCAxMDAsIGNvbnRleHQuc2FtcGxl
UmF0ZSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIDwgW29mZmxpbmUtYXVkaW8t
Y29udGV4dF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyYTRm
OWE2OWI3ZjgzM2VjNmNiYWM5MjllZTM3MmY0NzU0NzI2YzhjLi43MzMxMjNjMDhkZDA4NGQ2YWE1
MjNhZmMyNGE2MGEyNDgyODdmZTNlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTExLTA1ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFy
cmF5QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHN0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanM6CisgICAgICAgIChzaG91bGRTdWNj
ZWVkKToKKyAgICAgICAgKGlkeC5vZi5zdHJpbmdfYXBwZWFyZWRfaGVyZS5hLm9mLmFycmF5cy5t
Lm9mLmF0b21pY3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUuYS5vZi5hcnJheXMu
bS5vZi5hdG9taWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvU2hhcmVkQXJyYXlCdWZm
ZXIuanM6CisgICAgICAgIChzaG91bGRTdWNjZWVkKToKKyAgICAgICAgKFN5bWJvbCk6CisgICAg
ICAgICogc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qczoKKyAgICAgICAgKiBzdHJl
c3MvYXRvbWljcy1hZGQtdWludDMyLmpzOgorICAgICAgICAqIHN0cmVzcy9hdG9taWNzLWtub3du
LWludC11c2UuanM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3MtbmVnLXplcm8uanM6CisgICAg
ICAgICogc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzOgorICAgICAgICAqIHN0cmVzcy9s
YXJzLXNhYi13b3JrZXJzLmpzOgorICAgICAgICAocmVzb3VyY2VzKToKKyAgICAgICAgKG5vdGlm
eSk6CisgICAgICAgICh3YWtlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0x
NzA0NzMuanM6CisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzOgorICAgICAgICAq
IHN0cmVzcy9zaGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1p
cy1tb2RpZnlpbmcuanM6IEFkZGVkLgorICAgICAgICAoMjYyLmFnZW50LndhaXRVbnRpbCk6Cisg
ICAgICAgICgyNjIuYWdlbnQuc3RhcnQuMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QpOgorICAg
ICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlv
bnMueWFtbDoKKwogMjAyMC0xMS0wMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYmFjayB0aGUgcmVtb3ZlZCBhc3NlcnRpb24gZnJvbSByMjY5MzM4IGFu
ZCBhZGQgYSB0ZXN0CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZl
ci1vcHQuanMgYi9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanMKaW5kZXgg
N2IyYzI3ZmY5ZWExM2YxMmM1ZjRlNDk3MWI2YjY4YmNjZjQwMDEzYS4uNzhlMWRhYjcyZDA1YzI1
N2RlZmJhYzdjN2MyMmI5MTZhZmI5NTBmNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvU2hh
cmVkQXJyYXlCdWZmZXItb3B0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVm
ZmVyLW9wdC5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgZHYgPSBuZXcgRGF0YVZp
ZXcobmV3IFNoYXJlZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGk4YSA9IG5ldyBJbnQ4QXJyYXko
bmV3IFNoYXJlZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGkxNmEgPSBuZXcgSW50MTZBcnJheShu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoMTI4KSk7CkBAIC0xMDQsNiArMTAzLDExIEBAIGZ1bmN0aW9u
IHNob3VsZEZhaWwoZiwgbmFtZSkKICAgICB0aHJvdyBuZXcgRXJyb3IoZiArICIgc3VjY2VlZGVk
ISIpOwogfQogCitmdW5jdGlvbiBzaG91bGRTdWNjZWVkKGYpCit7CisgICAgZigpOworfQorCiBm
b3IgKHZhciBiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwgU3ltYm9s
KCksIHt9LCAiaGVsbG8iLCBkdiwgdThjYSwgZjMyYSwgZjY0YV0pIHsKICAgICBzaG91bGRGYWls
KCgpID0+IGdlbmVyaWNBdG9taWNzLmdldCgiYWRkIikoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsK
ICAgICBzaG91bGRGYWlsKCgpID0+IGdlbmVyaWNBdG9taWNzLmdldCgiYW5kIikoYmFkLCAwLCAw
KSwgVHlwZUVycm9yKTsKQEAgLTExNiw3ICsxMjAsNyBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYs
IG5hbWUpCiAgICAgc2hvdWxkRmFpbCgoKSA9PiBnZW5lcmljQXRvbWljcy5nZXQoInhvciIpKGJh
ZCwgMCwgMCksIFR5cGVFcnJvcik7CiB9CiAKLWZvciAodmFyIGlkeCBvZiBbLTEsIC0xMDAwMDAw
MDAwMDAwLCAxMDAwMCwgMTAwMDAwMDAwMDAwMDAsICJoZWxsbyJdKSB7Citmb3IgKHZhciBpZHgg
b2YgWy0xLCAtMTAwMDAwMDAwMDAwMCwgMTAwMDAwMDAwMDAwMDAsIDEwMDAwXSkgewogICAgIGZv
ciAodmFyIGEgb2YgYXJyYXlzKSB7CiAgICAgICAgIGZvciAodmFyIG0gb2YgW2F0b21pY3MuZ2V0
KGEpLCBnZW5lcmljQXRvbWljc10pIHsKICAgICAgICAgICAgIHNob3VsZEZhaWwoKCkgPT4gbS5n
ZXQoImFkZCIpKGEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwpAQCAtMTMyLDMgKzEzNiwxOSBAQCBm
dW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAgICAgfQogfQogCitmb3IgKHZhciBpZHggb2Yg
WyJoZWxsbyJdKSB7CisgICAgZm9yICh2YXIgYSBvZiBhcnJheXMpIHsKKyAgICAgICAgZm9yICh2
YXIgbSBvZiBbYXRvbWljcy5nZXQoYSksIGdlbmVyaWNBdG9taWNzXSkgeworICAgICAgICAgICAg
c2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgiYWRkIikoYSwgaWR4LCAwKSk7CisgICAgICAgICAg
ICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJhbmQiKShhLCBpZHgsIDApKTsKKyAgICAgICAg
ICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImNvbXBhcmVFeGNoYW5nZSIpKGEsIGlkeCwg
MCwgMCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgiZXhjaGFuZ2Ui
KShhLCBpZHgsIDApKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImxv
YWQiKShhLCBpZHgpKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoIm9y
IikoYSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJz
dG9yZSIpKGEsIGlkeCwgMCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdl
dCgic3ViIikoYSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0u
Z2V0KCJ4b3IiKShhLCBpZHgsIDApKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9T
aGFyZWRBcnJheUJ1ZmZlci5qcwppbmRleCAzYjI2OWE3NjUwZmFhYjdkOWMxMGI3NTc1ZTBlNGVl
Y2QwZDZjZmIzLi4xZDcyN2NjYmUyOGZkNWFiM2JlODA3ODMyMDg3ZmE2OGIxNTk1YzdlIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiAv
LyBUaGlzIGlzIGEgYmFzaWMgdGVzdCBvZiBTaGFyZWRBcnJheUJ1ZmZlciBBUEkgYXMgd2UgdW5k
ZXJzdGFuZCBpdC4KIAogaWYgKFNoYXJlZEFycmF5QnVmZmVyID09IEFycmF5QnVmZmVyKQpAQCAt
MzUsMTEgKzM0LDExIEBAIGZ1bmN0aW9uIGNoZWNrQXRvbWljcyhuYW1lLCBjb3VudCkKIGNoZWNr
QXRvbWljcygiZXhjaGFuZ2UiLCAzKTsKIGNoZWNrQXRvbWljcygiaXNMb2NrRnJlZSIsIDEpOwog
Y2hlY2tBdG9taWNzKCJsb2FkIiwgMik7CitjaGVja0F0b21pY3MoIm5vdGlmeSIsIDMpOwogY2hl
Y2tBdG9taWNzKCJvciIsIDMpOwogY2hlY2tBdG9taWNzKCJzdG9yZSIsIDMpOwogY2hlY2tBdG9t
aWNzKCJzdWIiLCAzKTsKIGNoZWNrQXRvbWljcygid2FpdCIsIDQpOwotY2hlY2tBdG9taWNzKCJ3
YWtlIiwgMyk7CiBjaGVja0F0b21pY3MoInhvciIsIDMpOwogCiAvLyBUaGVzZSBzaG91bGQgYWxs
IHN1Y2NlZWQuCkBAIC02Niw2ICs2NSwxMSBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUp
CiAgICAgdGhyb3cgbmV3IEVycm9yKGYgKyAiIHN1Y2NlZWRlZCEiKTsKIH0KIAorZnVuY3Rpb24g
c2hvdWxkU3VjY2VlZChmKQoreworICAgIGYoKTsKK30KKwogZm9yIChiYWQgb2YgW3ZvaWQgMCwg
bnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwgU3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgdThj
YSwgZjMyYSwgZjY0YV0pIHsKICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3MuYWRkKGJhZCwg
MCwgMCksIFR5cGVFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLmFuZChiYWQs
IDAsIDApLCBUeXBlRXJyb3IpOwpAQCAtNzksMTEgKzgzLDExIEBAIGZ1bmN0aW9uIHNob3VsZEZh
aWwoZiwgbmFtZSkKIH0KIAogZm9yIChiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUs
IDEsIDAuNSwgU3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgaThhLCBpMTZhLCB1OGEsIHU4Y2Es
IHUxNmEsIHUzMmEsIGYzMmEsIGY2NGFdKSB7CisgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNz
Lm5vdGlmeShiYWQsIDAsIDApLCBUeXBlRXJyb3IpOwogICAgIHNob3VsZEZhaWwoKCkgPT4gQXRv
bWljcy53YWl0KGJhZCwgMCwgMCksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBB
dG9taWNzLndha2UoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKIH0KIAotZm9yIChpZHggb2YgWy0x
LCAtMTAwMDAwMDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwLCAiaGVsbG8iXSkgeworZm9y
IChpZHggb2YgWy0xLCAtMTAwMDAwMDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwXSkgewog
ICAgIGZvciAoYSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUzMmFdKSB7CiAgICAg
ICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7
CiAgICAgICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSwgUmFuZ2VF
cnJvcik7CkBAIC05NSw4ICs5OSwyNCBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAg
ICAgICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5zdWIoYSwgaWR4LCAwKSwgUmFuZ2VFcnJv
cik7CiAgICAgICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy54b3IoYSwgaWR4LCAwKSwgUmFu
Z2VFcnJvcik7CiAgICAgfQorICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5ub3RpZnkoaTMy
YSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndh
aXQoaTMyYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9t
aWNzLndha2UoaTMyYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7Cit9CisKK2ZvciAoaWR4IG9mIFsi
aGVsbG8iXSkgeworICAgIGZvciAoYSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUz
MmFdKSB7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAw
KSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSk7
CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5jb21wYXJlRXhjaGFuZ2UoYSwg
aWR4LCAwLCAwKSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5leGNoYW5n
ZShhLCBpZHgsIDApKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmxvYWQo
YSwgaWR4KSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5vcihhLCBpZHgs
IDApKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLnN0b3JlKGEsIGlkeCwg
MCkpOworICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Muc3ViKGEsIGlkeCwgMCkp
OworICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3MueG9yKGEsIGlkeCwgMCkpOwor
ICAgIH0KKyAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Mubm90aWZ5KGkzMmEsIGlkeCwg
MCkpOworICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy53YWl0KGkzMmEsIGlkeCwgMCwg
MSkpOwogfQogCiBmdW5jdGlvbiBydW5BdG9taWMoYXJyYXksIGluZGV4LCBpbml0LCBuYW1lLCBh
cmdzLCBleHBlY3RlZFJlc3VsdCwgZXhwZWN0ZWRPdXRjb21lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvYXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJy
YXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzCmluZGV4IDc4YTcyZjkyMzJjZDA4ZTc1ZWEyNzk0MjE0
ZDdjMmY2OTEzMmVlNWYuLjY0MzM1YzE0OWUyMzRiOTQ5NWZhYTIxZDJhMjExMjNiMzU2OTJhNzcg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMKQEAgLTEsNCAr
MSwzIEBACi0vL0Agc2tpcAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKIHsK
ICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2F0b21pY3MtYWRkLXVpbnQzMi5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVpbnQz
Mi5qcwppbmRleCA5YjAwOGUxNTQzOTIzMWYwMzI3Y2ZiYTE5NWRlMzQ2ZTNlNDlhYTZjLi5kOTdk
ZGRiNDY5NzFjMDFiNjcyN2VhNjVkNzQ2NGYzOTVhYTg0MWI4IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9hdG9taWNzLWFkZC11aW50MzIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWlj
cy1hZGQtdWludDMyLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBzYWIgPSBuZXcg
U2hhcmVkQXJyYXlCdWZmZXIoNCk7CiB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShzYWIpOwogdmFy
IHJlc3VsdCA9IEF0b21pY3MuYWRkKGEsIDAsIDQwMDAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYXRvbWljcy1rbm93bi1pbnQtdXNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXRv
bWljcy1rbm93bi1pbnQtdXNlLmpzCmluZGV4IDgwNzMxZWE3YzgyNGE3ZDJjZmZjNjI5M2E5ZWY1
YzI3YjQxZTJlYjIuLjRlMGE5NmMxNTQzYzJmMDU0YmJkMjRlNjliZmVkNzlmOWIxYzgzNDcgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mta25vd24taW50LXVzZS5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9hdG9taWNzLWtub3duLWludC11c2UuanMKQEAgLTEsNCArMSwzIEBACi0v
L0Agc2tpcAogLy8gQnJlYWsgdHlwZSBpbmZlcmVuY2UuCiB2YXIgbyA9IHtmOiA0Mi41fTsKIApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcyBiL0pTVGVzdHMv
c3RyZXNzL2F0b21pY3MtbmVnLXplcm8uanMKaW5kZXggMGE4ZTUyYzdiZmE4OTIzZDcyNzExNTFh
OTE0YjJhZmZiNWIzMDAzYS4uZjk3YWJmYjU0MzU1ZGUyYjkwNGEwYTZmZWY0ZWVlMGM5YWNhMTgx
ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9hdG9taWNzLW5lZy16ZXJvLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNr
aXAKIHZhciBzYWIgPSBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoNCk7CiB2YXIgYSA9IG5ldyBJbnQz
MkFycmF5KHNhYik7CiBBdG9taWNzLmFkZChhLCAtMCwgMSk7IC8vIFRoaXMgc2hvdWxkIG5vdCB0
aHJvdy4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpz
IGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKaW5kZXggNzg3YTFmZDI0
MzE1YTMwYmI4MDQ0NTg2ZmFiNGVjNzAxNGU4ZGRlMS4uMDgyNTYzZjM0MTBiNzNlYmQ3ZGI2YTMz
Y2Y1ZTU4MDEwYjcxNWE0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9y
ZS1yZXR1cm4uanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMK
QEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAogdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZl
cigxKTsKIHZhciBhID0gbmV3IEludDhBcnJheShzYWIpOwogdmFyIHJlc3VsdCA9IEF0b21pY3Mu
c3RvcmUoYSwgMCwgMTAwMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNhYi13
b3JrZXJzLmpzIGIvSlNUZXN0cy9zdHJlc3MvbGFycy1zYWItd29ya2Vycy5qcwppbmRleCBiYWU0
MDBmNzIwODRlYTI1ZjMxZTRiYzQ0NDRjYzMwNTMyY2QyZDMyLi43ZDFjYWRkMzJhZjQ4ZmMwZDQ1
Yzk1M2M1MWI4NTRiZjcyZTgyOGJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNh
Yi13b3JrZXJzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xhcnMtc2FiLXdvcmtlcnMuanMKQEAg
LTEsNSArMSwzIEBACi0vL0Agc2tpcAotCiB2YXIgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVy
KDEwMCAqIDQpOwogCiB2YXIgbWVtb3J5ID0gbmV3IEludDMyQXJyYXkoc2FiKTsKQEAgLTE0LDcg
KzEyLDcgQEAgZnVuY3Rpb24gc3RhcnRXb3JrZXIoY29kZSkKIH0KIAogcmVzb3VyY2VzID0gYAot
ZnVuY3Rpb24gd2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCB3YWtlQ29uZGl0aW9u
KQorZnVuY3Rpb24gd2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCBub3RpZnlDb25k
aXRpb24pCiB7CiAgICAgd2hpbGUgKG1lbW9yeVtpbmRleF0gPT0gd2FpdENvbmRpdGlvbikgewog
ICAgICAgICB2YXIgcmVzdWx0ID0gQXRvbWljcy53YWl0KG1lbW9yeSwgaW5kZXgsIHdhaXRDb25k
aXRpb24pOwpAQCAtMjgsMjMgKzI2LDIzIEBAIGZ1bmN0aW9uIHdhaXQobWVtb3J5LCBpbmRleCwg
d2FpdENvbmRpdGlvbiwgd2FrZUNvbmRpdGlvbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIHZhciB2YWx1ZSA9IG1lbW9yeVtpbmRleF07Ci0gICAgICAgIGlmICh2YWx1
ZSAhPSB3YWtlQ29uZGl0aW9uKSB7CisgICAgICAgIGlmICh2YWx1ZSAhPSBub3RpZnlDb25kaXRp
b24pIHsKICAgICAgICAgICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjogd2FpdCByZXR1cm5lZCBu
b3QtZXF1YWwgYnV0IHRoZSBtZW1vcnkgaGFzIGEgYmFkIHZhbHVlOiAiICsgdmFsdWUpOwogICAg
ICAgICAgICAgJC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgICAgIH0KICAgICB9CiAgICAg
dmFyIHZhbHVlID0gbWVtb3J5W2luZGV4XTsKLSAgICBpZiAodmFsdWUgIT0gd2FrZUNvbmRpdGlv
bikgeworICAgIGlmICh2YWx1ZSAhPSBub3RpZnlDb25kaXRpb24pIHsKICAgICAgICAgJC5hZ2Vu
dC5yZXBvcnQoIkVycm9yOiBkb25lIHdhaXRpbmcgYnV0IHRoZSBtZW1vcnkgaGFzIGEgYmFkIHZh
bHVlOiAiICsgdmFsdWUpOwogICAgICAgICAkLmFnZW50LnJlcG9ydCgiZXJyb3IiKTsKICAgICB9
CiB9CiAKLWZ1bmN0aW9uIHdha2UobWVtb3J5LCBpbmRleCkKK2Z1bmN0aW9uIG5vdGlmeShtZW1v
cnksIGluZGV4KQogewotICAgIHZhciByZXN1bHQgPSBBdG9taWNzLndha2UobWVtb3J5LCBpbmRl
eCwgMSk7CisgICAgdmFyIHJlc3VsdCA9IEF0b21pY3Mubm90aWZ5KG1lbW9yeSwgaW5kZXgsIDEp
OwogICAgIGlmIChyZXN1bHQgIT0gMCAmJiByZXN1bHQgIT0gMSkgewotICAgICAgICAkLmFnZW50
LnJlcG9ydCgiRXJyb3I6IGJhZCByZXN1bHQgZnJvbSB3YWtlOiAiICsgcmVzdWx0KTsKKyAgICAg
ICAgJC5hZ2VudC5yZXBvcnQoIkVycm9yOiBiYWQgcmVzdWx0IGZyb20gbm90aWZ5OiAiICsgcmVz
dWx0KTsKICAgICAgICAgJC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgfQogfQpAQCAtNjYs
NyArNjQsNyBAQCBmdW5jdGlvbiB3YWtlKG1lbW9yeSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQu
cmVwb3J0KCIxOiBJdCBzdGFydGVkISIpOwogICAgICAgICAKICAgICAgICAgbWVtb3J5W3Nob3Vs
ZEdvSWR4XSA9IDE7Ci0gICAgICAgIHdha2UobWVtb3J5LCBzaG91bGRHb0lkeCk7CisgICAgICAg
IG5vdGlmeShtZW1vcnksIHNob3VsZEdvSWR4KTsKICAgICAgICAgCiAgICAgICAgIHdhaXQobWVt
b3J5LCBkaWRFbmRJZHgsIDAsIDEpOwogICAgICAgICAKQEAgLTg4LDEyICs4NiwxMiBAQCBmdW5j
dGlvbiB3YWtlKG1lbW9yeSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIyOiBNZW1v
cnk6ICIgKyBtZW1vcnkpOwogICAgICAgICAKICAgICAgICAgQXRvbWljcy5zdG9yZShtZW1vcnks
IGRpZFN0YXJ0SWR4LCAxKTsKLSAgICAgICAgd2FrZShtZW1vcnksIGRpZFN0YXJ0SWR4KTsKKyAg
ICAgICAgbm90aWZ5KG1lbW9yeSwgZGlkU3RhcnRJZHgpOwogICAgICAgICAKICAgICAgICAgd2Fp
dChtZW1vcnksIHNob3VsZEdvSWR4LCAwLCAxKTsKICAgICAgICAgCiAgICAgICAgIEF0b21pY3Mu
c3RvcmUobWVtb3J5LCBkaWRFbmRJZHgsIDEpOwotICAgICAgICB3YWtlKG1lbW9yeSwgZGlkRW5k
SWR4LCAxKTsKKyAgICAgICAgbm90aWZ5KG1lbW9yeSwgZGlkRW5kSWR4LCAxKTsKICAgICAgICAg
CiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIyOiBNZW1vcnk6ICIgKyBtZW1vcnkpOwogICAgICAg
ICAkLmFnZW50LnJlcG9ydCgiZG9uZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVn
cmVzcy0xNzA0NzMuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwppbmRleCBh
YTlhYWJhOGRjNWUxMDI5Y2Q3NzFkMzhhN2ExZjdiNDZiYWVjMjQwLi4xNmUxNmQ3NDRiMmExYTVk
YTI2YTU5ZTNiN2IwNGUzOTM5OTRiZDAyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdy
ZXNzLTE3MDQ3My5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwpAQCAt
MSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgaGVhcCA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcig0
MDk2KTsKIHZhciBVaW50OEFycmF5VmlldyA9IG5ldyBVaW50OEFycmF5KGhlYXApOwogCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4OTMxNy5qcyBiL0pTVGVzdHMvc3RyZXNz
L3JlZ3Jlc3MtMTg5MzE3LmpzCmluZGV4IDhlNjhlZTI0MWU3YTc3ZTA3YTZhYWNjMDdhYTRmZjA0
MjY3N2I4Y2IuLjRiOGYyODdmODYxYWU4YThmM2NhZmI0NzRkN2VkNWJlZWUzMjIzN2MgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzCkBAIC05Miw3ICs5Miw3IEBACiAgICAgICAgICJBdG9taWNz
LnN0b3JlIiwKICAgICAgICAgIkF0b21pY3Muc3ViIiwKICAgICAgICAgIkF0b21pY3Mud2FpdCIs
Ci0gICAgICAgICJBdG9taWNzLndha2UiLAorICAgICAgICAiQXRvbWljcy5ub3RpZnkiLAogICAg
ICAgICAiQXRvbWljcy54b3IiLAogICAgIF0pOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvc2hhcmVkLWFycmF5LWJ1ZmZlci1zb3J0LXdoaWxlLWRpZmZlcmVudC10aHJlYWQtaXMtbW9k
aWZ5aW5nLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhcmVkLWFycmF5LWJ1ZmZlci1zb3J0LXdoaWxl
LWRpZmZlcmVudC10aHJlYWQtaXMtbW9kaWZ5aW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YWNlOTBlYzll
OGQxODkxMThmYTY1YmQ1ZjdjN2NkZWRiNWIzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9zaGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1p
cy1tb2RpZnlpbmcuanMKQEAgLTAsMCArMSwzOCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0td2F0Y2hk
b2c9MTAwMCIsICItLXdhdGNoZG9nLWV4Y2VwdGlvbi1vayIpCisKKyQyNjIuYWdlbnQud2FpdFVu
dGlsID0gZnVuY3Rpb24odHlwZWRBcnJheSwgaW5kZXgsIGV4cGVjdGVkKSB7CisgIHZhciBhZ2Vu
dHMgPSAwOworICB3aGlsZSAoKGFnZW50cyA9IEF0b21pY3MubG9hZCh0eXBlZEFycmF5LCBpbmRl
eCkpICE9PSBleHBlY3RlZCkgeworICAgIC8qIG5vdGhpbmcgKi8KKyAgfQorfTsKKworY29uc3Qg
SVRFUkFUSU9OUyA9IDEwMDAwOworY29uc3QgUlVOTklORyA9IDA7CisKK2NvbnN0IGkzMmEgPSBu
ZXcgSW50MzJBcnJheSgKKyAgbmV3IFNoYXJlZEFycmF5QnVmZmVyKEludDMyQXJyYXkuQllURVNf
UEVSX0VMRU1FTlQgKiAxMDAwMDApCispOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5h
Z2VudC5yZWNlaXZlQnJvYWRjYXN0KGZ1bmN0aW9uKHNhYikgeworICAgIGNvbnN0IGkzMmEgPSBu
ZXcgSW50MzJBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGkzMmEsICR7UlVOTklOR30sIDEp
OworCisgICAgZm9yICh2YXIgaiA9IDE7IGogPCAke0lURVJBVElPTlN9OyArK2opIHsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpMzJhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBp
MzJhW2ldID0gajsKKyAgICAgICAgfQorICAgIH0KKworICAgICQyNjIuYWdlbnQucmVwb3J0KCJk
b25lIik7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdl
bnQuYnJvYWRjYXN0KGkzMmEuYnVmZmVyKTsKKyQyNjIuYWdlbnQud2FpdFVudGlsKGkzMmEsIFJV
Tk5JTkcsIDEpOworCitmb3IgKHZhciBpID0gMDsgaSA8IElURVJBVElPTlM7ICsraSkgeworICAg
IGkzMmEuc29ydCgpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1s
IGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IGI5MTQ5NjdiZGI3MDUwNDJiODhm
YjlmNTgwYmJkYWQ5ZGQ4Y2UzYjEuLjc3YWYwYTdhMjEzNzUzMzM3ZGRhNDAyZWQwZjBjMzYxZTUz
OWRmODUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTYsMTAgKzYsMTAgQEAgZmxhZ3M6CiAgIGNsYXNz
LWZpZWxkcy1wdWJsaWM6IHVzZVB1YmxpY0NsYXNzRmllbGRzCiAgIGNsYXNzLWZpZWxkcy1wcml2
YXRlOiB1c2VQcml2YXRlQ2xhc3NGaWVsZHMKICAgSW50bC5EYXRlVGltZUZvcm1hdC1kYXlQZXJp
b2Q6IHVzZUludGxEYXRlVGltZUZvcm1hdERheVBlcmlvZAorICBTaGFyZWRBcnJheUJ1ZmZlcjog
dXNlU2hhcmVkQXJyYXlCdWZmZXIKKyAgQXRvbWljczogdXNlU2hhcmVkQXJyYXlCdWZmZXIKIHNr
aXA6CiAgIGZlYXR1cmVzOgotICAgIC0gU2hhcmVkQXJyYXlCdWZmZXIKLSAgICAtIEF0b21pY3MK
ICAgICAtIEF0b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2JlaGluZApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCmluZGV4IGM1N2JhYTRmNWI1MjFkYWQ3OGEyYWI1YjVkMDBlYmM5OTI5
YmJkZDguLjc2YTBiNDFlNjUwMzlhYTZkMDk2Y2EwMzEyZTA5OTUwMTdkMGIwNTkgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTYyNyw2ICs2MjcsMTg5IEBAIHRlc3QvYnVpbHQtaW5z
L0FycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVybnMtc21hbGxlci1hcnJh
eWJ1ZmZlci5qCiB0ZXN0L2J1aWx0LWlucy9BcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3Bl
Y2llcy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
W29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJy
YXlCdWZmZXJdwrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCit0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL2FkZC9iaWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL2FkZC9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVmYXVsdDog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBz
dHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9hZGQvYmlnaW50L25vbi1zaGFyZWQtYnVm
ZmVyZGF0YS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9h
bmQvYmlnaW50L2JhZC1yYW5nZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1p
bnMvQXRvbWljcy9hbmQvYmlnaW50L2dvb2Qtdmlld3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1v
ZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIK
K3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvYW5kL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEu
anM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvY29tcGFyZUV4
Y2hhbmdlL2JpZ2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3MvY29tcGFyZUV4Y2hhbmdlL2JpZ2ludC9nb29kLXZpZXdzLmpzOgorICBk
ZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJy
YXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2NvbXBhcmVFeGNoYW5nZS9i
aWdpbnQvbm9uLXNoYXJlZC1idWZmZXJkYXRhLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL2V4Y2hhbmdlL2JpZ2ludC9iYWQtcmFuZ2UuanM6CisgIGRlZmF1
bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIK
KyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvZXhjaGFuZ2UvYmlnaW50L2dvb2Qt
dmlld3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvZXhj
aGFuZ2UvYmlnaW50L25vbi1zaGFyZWQtYnVmZmVyZGF0YS5qczoKKyAgZGVmYXVsdDogIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3Qg
bW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5
IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9pc0xvY2tGcmVlL2JpZ2ludC9leHBlY3RlZC1yZXR1
cm4tdmFsdWUuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
bG9hZC9iaWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL2xvYWQvYmlnaW50L2dvb2Qtdmlld3MuanM6CisgIGRlZmF1bHQ6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0
IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJh
eSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MvbG9hZC9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJk
YXRhLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL25vdGlm
eS9iaWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL25vdGlmeS9iaWdpbnQvbm9uLWJpZ2ludDY0LXR5cGVkYXJyYXktdGhyb3dzLmpz
OgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ1Vp
bnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBCaWdVaW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2Jp
Z2ludC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEtY291bnQtZXZhbHVhdGlvbi10aHJvd3MuanM6Cisg
IGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRB
cnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2JpZ2ludC9u
b24tc2hhcmVkLWJ1ZmZlcmRhdGEtaW5kZXgtZXZhbHVhdGlvbi10aHJvd3MuanM6CisgIGRlZmF1
bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIK
KyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvbm90aWZ5L2JpZ2ludC9ub24tc2hh
cmVkLWJ1ZmZlcmRhdGEtbm9uLXNoYXJlZC1pbnQtdmlld3MtdGhyb3dzLmpzOgorICBkZWZhdWx0
OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisg
IHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0lu
dDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL25vdGlmeS9iaWdpbnQvbm9uLXNoYXJl
ZC1idWZmZXJkYXRhLXJldHVybnMtMC5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWls
dC1pbnMvQXRvbWljcy9ub3RpZnkvYmlnaW50L25vdGlmeS1hbGwtb24tbG9jLmpzOgorICBkZWZh
dWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXki
CisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJp
Z0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL25vdGlmeS9iaWdpbnQvbnVsbC1i
dWZmZXJkYXRhLXRocm93cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMv
QXRvbWljcy9vci9iaWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL29yL2JpZ2ludC9nb29kLXZpZXdzLmpzOgorICBkZWZhdWx0OiAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0
cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0
QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL29yL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZl
cmRhdGEuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvc3Rv
cmUvYmlnaW50L2JhZC1yYW5nZS5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1p
bnMvQXRvbWljcy9zdG9yZS9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVmYXVsdDogIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3Qg
bW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5
IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy9zdG9yZS9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJk
YXRhLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3N1Yi9i
aWdpbnQvYmFkLXJhbmdlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3N1Yi9iaWdpbnQvZ29vZC12aWV3cy5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVz
dC9idWlsdC1pbnMvQXRvbWljcy9zdWIvYmlnaW50L25vbi1zaGFyZWQtYnVmZmVyZGF0YS5qczoK
KyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2
NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9i
YWQtcmFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdC9iaWdpbnQvY2Fubm90LXN1c3BlbmQtdGhyb3dzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBt
b2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXki
Cit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L2ZhbHNlLWZvci10aW1lb3V0LWFn
ZW50LmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQv
YmlnaW50L2ZhbHNlLWZvci10aW1lb3V0LmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25hbi1mb3ItdGltZW91dC5qczoKKyAgZGVmYXVs
dDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5Igor
ICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJ
bnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9uZWdhdGl2ZS1p
bmRleC10aHJvd3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvd2FpdC9iaWdpbnQvbmVnYXRpdmUtdGltZW91dC1hZ2VudC5qczoKKyAgZGVmYXVsdDogIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJp
Y3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFy
cmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9uZWdhdGl2ZS10aW1lb3V0
LmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJp
Z0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmln
aW50L25vLXNwdXJpb3VzLXdha2V1cC1uby1vcGVyYXRpb24uanM6CisgIGRlZmF1bHQ6ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0
IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJh
eSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVw
LW9uLWFkZC5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0L2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24tYW5kLmpzOgorICBkZWZhdWx0OiAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmlj
dCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJy
YXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1
cC1vbi1jb21wYXJlRXhjaGFuZ2UuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdC9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLWV4Y2hhbmdlLmpz
OgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0lu
dDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50
L25vLXNwdXJpb3VzLXdha2V1cC1vbi1vci5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9i
dWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24tc3RvcmUu
anM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmln
SW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdC9iaWdp
bnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLXN1Yi5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVz
dC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24teG9y
LmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJp
Z0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmln
aW50L25vbi1iaWdpbnQ2NC10eXBlZGFycmF5LXRocm93cy5qczoKKyAgZGVmYXVsdDogIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdVaW50NjRBcnJheSIKKyAgc3RyaWN0
IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnVWludDY0QXJy
YXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50L25vbi1zaGFyZWQtYnVmZmVy
ZGF0YS10aHJvd3MuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvd2FpdC9iaWdpbnQvbnVsbC1idWZmZXJkYXRhLXRocm93cy5qczoKKyAgZGVmYXVsdDogIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJp
Y3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFy
cmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC9vdXQtb2YtcmFuZ2UtaW5k
ZXgtdGhyb3dzLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNz
L3dhaXQvYmlnaW50L3ZhbHVlLW5vdC1lcXVhbC5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTog
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVz
dC9idWlsdC1pbnMvQXRvbWljcy93YWl0L2JpZ2ludC93YWl0ZXJsaXN0LWJsb2NrLWluZGV4ZWRw
b3NpdGlvbi13YWtlLmpzOgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXQvYmlnaW50L3dhaXRlcmxpc3Qtb3JkZXItb2Ytb3BlcmF0aW9ucy1pcy1maWZvLmpz
OgorICBkZWZhdWx0OiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEJpZ0lu
dDY0QXJyYXkiCisgIHN0cmljdCBtb2RlOiAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IEJpZ0ludDY0QXJyYXkiCit0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50
L3dhcy13b2tlbi1iZWZvcmUtdGltZW91dC5qczoKKyAgZGVmYXVsdDogIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJpY3QgbW9kZTogIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgordGVzdC9i
dWlsdC1pbnMvQXRvbWljcy94b3IvYmlnaW50L2JhZC1yYW5nZS5qczoKKyAgZGVmYXVsdDogIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFycmF5IgorICBzdHJp
Y3QgbW9kZTogIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCaWdJbnQ2NEFy
cmF5IgordGVzdC9idWlsdC1pbnMvQXRvbWljcy94b3IvYmlnaW50L2dvb2Qtdmlld3MuanM6Cisg
IGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRB
cnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogQmlnSW50NjRBcnJheSIKK3Rlc3QvYnVpbHQtaW5zL0F0b21pY3MveG9yL2JpZ2ludC9ub24t
c2hhcmVkLWJ1ZmZlcmRhdGEuanM6CisgIGRlZmF1bHQ6ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKKyAgc3RyaWN0IG1vZGU6ICJSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQmlnSW50NjRBcnJheSIKIHRlc3QvYnVpbHQtaW5z
L0RhdGUvVVRDL2ZwLWV2YWx1YXRpb24tb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IG9yZGVyIG9mIG9wZXJhdGlvbnMgLyBwcmVjaXNpb24gaW4gTWFrZVRpbWUgRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrTmFOwrssIMKrMjkzMTLCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IG9yZGVyIG9mIG9wZXJhdGlvbnMgLyBwcmVjaXNpb24gaW4gTWFrZVRp
bWUgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrTmFOwrssIMKrMjkzMTLCuykgdG8gYmUgdHJ1ZScKQEAg
LTg0Nyw2ICsxMDMwLDMwIEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy91
LWxhc3RpbmRleC1hZHYuanM6CiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcXVhbnRpZmllci1pbnRl
Z2VyLWxpbWl0LmpzOgogICBkZWZhdWx0OiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBl
eHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXInCiAgIHN0cmljdCBt
b2RlOiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9v
IGxhcmdlIGluIHt9IHF1YW50aWZpZXInCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZl
ci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1jb25zdHJ1Y3Rvci1pcy1ub3Qtb2JqZWN0LmpzOgor
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JgIHZhbHVlIGlzIG51bGwgRXhw
ZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93
biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JgIHZh
bHVlIGlzIG51bGwgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZl
ci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1pcy1ub3QtY29uc3RydWN0b3IuanM6CisgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlz
IE9iamVjdCBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBjb25z
dHJ1Y3RvcltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIE9iamVjdCBFeHBlY3RlZCBhIFR5cGVF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rl
c3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLWlz
LW5vdC1vYmplY3QuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcltT
eW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIEJvb2xlYW4gRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JbU3ltYm9sLnNwZWNpZXNdYCB2YWx1ZSBp
cyBCb29sZWFuIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIv
cHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1sYXJnZXItYXJyYXlidWZmZXIuanM6Cisg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzjCuywgwqsxMMK7
KSB0byBiZSB0cnVlJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrOMK7LCDCqzEwwrspIHRvIGJlIHRydWUnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRB
cnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1cm5zLW5vdC1hcnJheWJ1ZmZl
ci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFy
cmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVybnMtc2FtZS1hcnJheWJ1ZmZl
ci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFy
cmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVybnMtc21hbGxlci1hcnJheWJ1
ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJl
ZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLmpzOgorICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IFNoYXJlZEFycmF5QnVmZmVy
XcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl3Cuywg
wqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJv
dG90eXBlL2V2ZXJ5L2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgogICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413388</attachid>
            <date>2020-11-05 19:52:51 -0800</date>
            <delta_ts>2020-11-05 20:59:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212069-20201105195250.patch</filename>
            <type>text/plain</type>
            <size>101468</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTlkOWQzOGNhMDJiYjdmYTA3Y2MxMGI5YWZmYzdjMjIxMWJmZGE0Li5hNmNhYjA1MGY4MDdmNmZm
NTJmNmFiMzcyYzUyZGI4MjM3NDVlNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0xMS0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBmb3IgSlNDIHNoZWxsIGFu
ZCBUZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJldml2ZXMgU2hhcmVkQXJyYXlCdWZmZXIgYW5kIEF0b21pY3MgYW5kIGFs
aWduaW5nIHRoZW0gdG8gdGhlIGxhdGVzdCBzcGVjLgorCisgICAgICAgIDEuIFNoYXJlZEFycmF5
QnVmZmVyJ3Mgc29ydCBzaG91bGQgYmUgZG9uZSBpbiBKUyBzaWRlLiBDKysgc29ydCBpcyBub3Qg
c2FmZSBmb3IgU2hhcmVkQXJyYXlCdWZmZXIgc2luY2UgdGhlIGJ1ZmZlcgorICAgICAgICAgICBj
YW4gYmUgbW9kaWZpZWQgYnkgZGlmZmVyZW50IHRocmVhZHMgd2hpbGUgc29ydGluZy4KKyAgICAg
ICAgMi4gQXRvbWljcy53YWl0IHNob3VsZCBiZSByZW5hbWVkIHRvIEF0b21pY3Mubm90aWZ5Lgor
ICAgICAgICAzLiBBdG9taWNzIG9wZXJhdGlvbiBzaG91bGQgYmUgVmFyQXJncyBpbiBERkcgYmVj
YXVzZSBERkdTU0FMb3dlcmluZ1BoYXNlIGFzc3VtZXMgdGhhdCB0aGV5IGFyZSBWYXJBcmdzIGFu
ZCB0aGV5IGNhbgorICAgICAgICAgICBoYXZlIGFub3RoZXIgYXJnIGZvciBDaGVja0luQm91bmRz
IGRlcGVuZGVuY3kuCisgICAgICAgIDUuIEZvciB0ZXN0MjYyLCBKU0Mgc2hlbGwgc2hvdWxkIHN1
cHBvcnQgIi0tY2FuLWJsb2NrLWlzLWZhbHNlIiBmbGFnLiBJZiBpdCBpcyB0cnVlLCB0aGUgbWFp
biB0aHJlYWQncyBbW0NhbkJsb2NrXV0gYmVjb21lcyBmYWxzZS4KKyAgICAgICAgICAgVGhpcyBt
ZWFucyB0aGF0IGBBdG9taWNzLndhaXRgIGNhbm5vdCBiZSB1c2VkLgorCisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3Rv
dHlwZS5qczoKKyAgICAgICAgKHNvcnQpOgorICAgICAgICAqIGJ5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xv
YmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptdXN0R2VuZXJhdGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc1ZhckFyZ3MgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6Om11c3RHZW5lcmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNTQUxvd2VyaW5nUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBdG9taWNzSXNMb2NrRnJlZSk6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKHByaW50VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAo
Q29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKHJ1bkpTQyk6CisgICAgICAg
ICogcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QXRvbWljc09iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNp
Yy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgorICAgICAgICAqIHJ1bnRpbWUv
SW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6YXJyYXlCdWZmZXJTbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5
QnVmZmVyQnl0ZUxlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvSW50ZWdlck9ySW5m
aW5pdHkgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jUmV2ZXJzZSk6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1By
aXZhdGVGdW5jU29ydCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKToKKyAgICAgICAg
KEpTQzo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OmlzQXRvbWljc1dhaXRBbGxvd2VkT25D
dXJyZW50VGhyZWFkKToKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmg6CisKIDIwMjAtMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIEFSTTY0RQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkZTA5Yjhl
MDcyZjYwOWUxOGRjZjQ5OGIyYzM4ZmI2MWYxZWVkNjlkLi43NDQ5NjYxNmRkYjMwMzUxZGNiNDhi
YmRhNGQ5ZjE2NDgxZGRkMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTA1ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJl
ZEFycmF5QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTExLTA0ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gTW92ZSB0aGUg
aW50ZXJuYWwgR1BVIHJlbmRlcmluZyBmbGFncyBmcm9tIFdlYlBhZ2UgdG8gV2ViUHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDli
OWI2NDg4MjBhYzFjMmU1OTg5N2ZhZDgzZmRmZmUzN2M3YTg1ZjUuLjYzOWUzM2FlZTEwZDU5ZDIy
NGQ1OTVjNDM2MDM3MzdmMGYyMGE4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTExNyw3ICsxMTcsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICBtYWNybyhuZXdUYXJnZXRMb2NhbCkgXAogICAgIG1hY3JvKGRlcml2ZWRDb25zdHJ1Y3Rv
cikgXAogICAgIG1hY3JvKGlzVHlwZWRBcnJheVZpZXcpIFwKKyAgICBtYWNybyhpc1NoYXJlZFR5
cGVkQXJyYXlWaWV3KSBcCiAgICAgbWFjcm8oaXNEZXRhY2hlZCkgXAorICAgIG1hY3JvKHR5cGVk
QXJyYXlEZWZhdWx0Q29tcGFyYXRvcikgXAogICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAog
ICAgIG1hY3JvKGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAogICAgIG1hY3JvKGluc3RhbmNl
T2YpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFy
cmF5UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJy
YXlQcm90b3R5cGUuanMKaW5kZXggMmFkZmNmMzljZTBkYzIzNTBmZjFkYTc1ZDY5MzFmMDE2N2My
ZjBmZS4uNWJmYzYwODBjZGEyZTgyOTI3ZTVlZmYwYmJjYjU0YjBlMjFmNzVlMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUu
anMKQEAgLTIzOCw5ICsyMzgsMTMgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgIGlm
IChsZW5ndGggPCAyKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY29tcGFyYXRvciAhPT0g
QHVuZGVmaW5lZCkKKyAgICAvLyB0eXBlZEFycmF5U29ydCBpcyBub3Qgc2FmZSB3aGVuIHRoZSBv
dGhlciB0aHJlYWQgaXMgbW9kaWZ5aW5nIGNvbnRlbnQuIFNvIGlmIHx0aGlzfCBpcyBTaGFyZWRB
cnJheUJ1ZmZlciwKKyAgICAvLyB1c2UgSlMtaW1wbGVtZW50ZWQgc29ydGluZy4KKyAgICBpZiAo
Y29tcGFyYXRvciAhPT0gQHVuZGVmaW5lZCB8fCBAaXNTaGFyZWRUeXBlZEFycmF5Vmlldyh0aGlz
KSkgeworICAgICAgICBpZiAoY29tcGFyYXRvciA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IGNvbXBhcmF0b3IgPSBAdHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yOwogICAgICAgICBAdHlw
ZWRBcnJheU1lcmdlU29ydCh0aGlzLCBsZW5ndGgsIGNvbXBhcmF0b3IpOwotICAgIGVsc2UKKyAg
ICB9IGVsc2UKICAgICAgICAgQHR5cGVkQXJyYXlTb3J0KHRoaXMpOwogCiAgICAgcmV0dXJuIHRo
aXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVD
b25zdGFudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3Rh
bnQuaAppbmRleCA5MjNlYmI5OGE2ZmI3YmZmZGRmNzYxMWEwMmEyNjE0MDI0OWM2ODdkLi5kMzU5
YTM4NTYwNjYyODA2ZDA4MDA0YWY2MGJlZmI3N2ZmYzdlNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKQEAgLTUzLDcgKzUzLDkg
QEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiAgICAgdih0eXBlZEFycmF5R2V0T3JpZ2luYWxDb25z
dHJ1Y3RvciwgbnVsbHB0cikgXAogICAgIHYodHlwZWRBcnJheVNvcnQsIG51bGxwdHIpIFwKICAg
ICB2KGlzVHlwZWRBcnJheVZpZXcsIG51bGxwdHIpIFwKKyAgICB2KGlzU2hhcmVkVHlwZWRBcnJh
eVZpZXcsIG51bGxwdHIpIFwKICAgICB2KGlzRGV0YWNoZWQsIG51bGxwdHIpIFwKKyAgICB2KHR5
cGVkQXJyYXlEZWZhdWx0Q29tcGFyYXRvciwgbnVsbHB0cikgXAogICAgIHYodHlwZWRBcnJheVN1
YmFycmF5Q3JlYXRlLCBudWxscHRyKSBcCiAgICAgdihpc0JvdW5kRnVuY3Rpb24sIG51bGxwdHIp
IFwKICAgICB2KGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCmluZGV4IDIzN2M0ZTI4NzExNjQ5NTZkMGU0YWQwM2JjYWZiMGM4ZTYwNzI4Y2YuLmUz
OTBlYjYxZDUzYzhiN2ExOGJiZTVkM2FmZWJmMTA2NzMxNzk3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKQEAgLTgyNiw3ICs4MjYsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIH0KICAg
ICAgICAgCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZTogewotICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpICE9IEludDMyVXNlKQorICAgICAgICBpZiAobV9ncmFwaC5jaGls
ZChub2RlLCAwKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpCiAgICAgICAgICAgICBjbG9iYmVyV29y
bGQoKTsKICAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCb29sSW50MzIp
OwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKaW5kZXggZmQ4NzE0YTI1MDkyMDhmOTVhMTU1YWZiNTdlNmQ0MzI4YzBh
NjFlOS4uMzk3MTJkNzExOWRkMWU2ZjliMDJiMzdiODk0M2ZjMmJjZmZiNjY5YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI3MTcs
MjQgKzI3MTcsMTkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChO
b2RlKiBjYWxsZWUsIE9wZXJhbmQgcmVzdWx0LCBJbnRyaW5zaWMKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcykgPCAxICsgbnVtQXJncykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRl
KG1fY3VycmVudEluZGV4LCBCYWRJbmRleGluZ1R5cGUpCisgICAgICAgICAgICAgICAgfHwgbV9p
bmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwg
QmFkQ29uc3RhbnRDYWNoZSkKKyAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5t
X2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKKyAgICAg
ICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRl
KG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGluc2VydENoZWNrcygpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBWZWN0b3I8Tm9kZSosIDM+IGFyZ3M7CiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtQXJnczsgKytpKQotICAgICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSArIGksIHJl
Z2lzdGVyT2Zmc2V0KSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBOb2RlKiByZXN1bHRO
b2RlOwotICAgICAgICAgICAgaWYgKG51bUFyZ3MgKyAxIDw9IDMpIHsKLSAgICAgICAgICAgICAg
ICB3aGlsZSAoYXJncy5zaXplKCkgPCAzKQotICAgICAgICAgICAgICAgICAgICBhcmdzLmFwcGVu
ZChudWxscHRyKTsKLSAgICAgICAgICAgICAgICByZXN1bHROb2RlID0gYWRkVG9HcmFwaChvcCwg
T3BJbmZvKEFycmF5TW9kZShBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9ucywgYWN0aW9uKS5h
c1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZvciAoTm9kZSogbm9kZSA6
IGFyZ3MpCi0gICAgICAgICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKG5vZGUpOwotICAgICAg
ICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHJlc3Vs
dE5vZGUgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbyhBcnJheU1vZGUoQXJy
YXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnMsIGFjdGlvbikuYXNXb3JkKCkpLCBPcEluZm8ocHJl
ZGljdGlvbikpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxk
KGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSArIGksIHJlZ2lz
dGVyT2Zmc2V0KSkpOworICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7IC8vIEZv
ciBzdG9yYWdlIGVkZ2UuCisgICAgICAgICAgICBOb2RlKiByZXN1bHROb2RlID0gYWRkVG9HcmFw
aChOb2RlOjpWYXJBcmcsIG9wLCBPcEluZm8oQXJyYXlNb2RlKEFycmF5OjpTZWxlY3RVc2luZ1By
ZWRpY3Rpb25zLCBhY3Rpb24pLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgc2V0UmVzdWx0KHJlc3VsdE5vZGUpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmlu
ZGV4IDhmNjg3YThiZWFhMTEyYmZiNmRjZjU3ZjI3MmE3NDlhZTc1NWE3ZTUuLmYwOWRmY2Q0ZTU0
MDgzZWVlODQzMjAzMGExYmMwOTIxNGZiN2Q2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0yNTMsOCArMjUzLDggQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZToKLSAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBJbnQzMlVzZSkKLSAgICAgICAg
ICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOworICAgICAgICBpZiAoZ3JhcGguY2hpbGQobm9kZSwg
MCkudXNlS2luZCgpID09IEludDMyVXNlKQorICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShncmFw
aCwgbm9kZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjbG9iYmVyVG9wKCk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CmluZGV4IGViMDQ2NTM0ODNjMTBjMmMyYTBlMDRlMjBjYTc2OTBmMzIxZmYxMzAuLjc0ZWVlMTIw
MzQ5MDllZWM3YTVjMDVjYTYzNmM0NzZkZDJiNGU1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTM2NSw4ICsxMzY1LDggQEAgY2xhc3MgRml4
dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIEF0b21pY3NJc0xvY2tGcmVlOgotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LT5zaG91bGRTcGVjdWxhdGVJbnQzMigpKQotICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVh
bkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgaWYgKG1fZ3JhcGguY2hpbGQobm9k
ZSwgMCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpCisgICAgICAgICAgICAgICAgZml4SW50T3JC
b29sZWFuRWRnZShtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXlQdXNoOiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCmluZGV4IDg5N2I5OTllOTU0NGUyOWNmMDA2ZjlkODZjNDI3ZTU2OTMzZDVk
ZmUuLmFiZWIxN2JkYzBmMzEzNDZkYTIzMzc3MjQyOTA2ZTc2NWM4MGEwODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC01MDQsMTAgKzUwNCwxNSBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgdm9pZCBjb252ZXJ0VG9JZGVudGl0eSgpOwogICAgIHZvaWQgY29udmVydFRvSWRlbnRp
dHlPbihOb2RlKik7CiAKLSAgICBib29sIG11c3RHZW5lcmF0ZSgpCisgICAgYm9vbCBtdXN0R2Vu
ZXJhdGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTXVzdEdl
bmVyYXRlOwogICAgIH0KKworICAgIGJvb2wgaGFzVmFyQXJncygpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVIYXNWYXJBcmdzOworICAgIH0KICAgICAKICAgICBi
b29sIGlzQ29uc3RhbnQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAppbmRleCAxYzI2YzNjMTUxNGFhYzIyNjU4ZDMwNDRiYThkNGFiMmU0N2Q5MWU5Li43ODNh
YzhhZTc0MDNkMzJkYWY1M2U3N2E0Mjg5ZWQ4MTQ5NTgxMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yOTksOCArMjk5LDggQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEF0b21pY3NBbmQsIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKEF0b21pY3NDb21w
YXJlRXhjaGFuZ2UsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFy
QXJncykgXAogICAgIG1hY3JvKEF0b21pY3NFeGNoYW5nZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11
c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCi0gICAgbWFjcm8oQXRvbWljc0lzTG9ja0Zy
ZWUsIE5vZGVSZXN1bHRCb29sZWFuKSBcCi0gICAgbWFjcm8oQXRvbWljc0xvYWQsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhBdG9taWNzSXNMb2NrRnJlZSwg
Tm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKEF0b21pY3NM
b2FkLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwK
ICAgICBtYWNybyhBdG9taWNzT3IsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKEF0b21pY3NTdG9yZSwgTm9kZVJlc3VsdEpTIHwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc1N1
YiwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcApp
bmRleCA2YjY1YjY3N2IxZGRlMmFhMDY1ZjUzYTEyZTQ1Y2M0Y2M3MjdkNzg4Li42Mzg2YjhhMzYy
ZTEzZTJhMGE4MDAxYWYzODNhZTRmZWY4Y2M5YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKQEAgLTc1LDcgKzc1LDEyIEBAIGNs
YXNzIFNTQUxvd2VyaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIEF0b21p
Y3NPcjoKICAgICAgICAgY2FzZSBBdG9taWNzU3RvcmU6CiAgICAgICAgIGNhc2UgQXRvbWljc1N1
YjoKLSAgICAgICAgY2FzZSBBdG9taWNzWG9yOgorICAgICAgICBjYXNlIEF0b21pY3NYb3I6IHsK
KyAgICAgICAgICAgIHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IG51bUV4dHJhQXRvbWljc0FyZ3Mo
bV9ub2RlLT5vcCgpKTsKKyAgICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2sobV9ncmFwaC5jaGls
ZChtX25vZGUsIDApLCBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMSksIG1fZ3JhcGguY2hpbGQobV9u
b2RlLCAyICsgbnVtRXh0cmFBcmdzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CiAgICAgICAgIGNhc2UgSGFzSW5kZXhlZFByb3BlcnR5OgogICAgICAgICAgICAgbG93ZXJCb3Vu
ZHNDaGVjayhtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAx
KSwgbV9ncmFwaC5jaGlsZChtX25vZGUsIDIpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
NjQ2NDdlYzI0MjA3NmY1MGNmN2VmOTJmZTFiMzFkOTNiNThiY2FkMy4uNWNkZWViMzg1ODk0ZDc4
OWFhNmFjMTQyNzkwZWMyZmM0NmU0OGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNDMwLDggKzM0MzAsOSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAg
ICBjYXNlIEF0b21pY3NJc0xvY2tGcmVlOiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51
c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wZXJh
bmQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBFZGdlIGNoaWxkMSA9IG1fZ3JhcGgu
Y2hpbGQobm9kZSwgMCk7CisgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpICE9IEludDMyVXNl
KSB7CisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGNoaWxkMSk7CiAg
ICAgICAgICAgICBHUFJSZWcgb3BlcmFuZEdQUiA9IG9wZXJhbmQuZ3ByKCk7CiAgICAgICAgICAg
ICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVz
dWx0KHRoaXMpOwpAQCAtMzQ0Miw3ICszNDQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAg
ICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGNoaWxkMSk7CiAgICAg
ICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BS
ID0gb3BlcmFuZC5ncHIoKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRl
eCBkZDU4YmI1NDZhMWM2M2RjY2NlZjc2MDE0MGE5ZDA0Y2I1YWE3OGIxLi4wZmUyZDBmMDEzOThj
ZTZiYjU1MjhkNDdhM2Y1YmU4Mzk3MTViMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00Mjc3LDEyICs0Mjc3LDEzIEBAIGNsYXNzIExv
d2VyREZHVG9CMyB7CiAgICAgdm9pZCBjb21waWxlQXRvbWljc0lzTG9ja0ZyZWUoKQogICAgIHsK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpICE9IEludDMyVXNlKSB7Ci0gICAgICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJ
bnQ2NCwgb3BlcmF0aW9uQXRvbWljc0lzTG9ja0ZyZWUsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVj
dCksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSkpKTsKKyAgICAgICAgRWRnZSBjaGlsZDEg
PSBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCk7CisgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgp
ICE9IEludDMyVXNlKSB7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3Bl
cmF0aW9uQXRvbWljc0lzTG9ja0ZyZWUsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0pT
VmFsdWUoY2hpbGQxKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IAotICAgICAgICBMVmFsdWUgYnl0ZXMgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgTFZhbHVlIGJ5dGVzID0gbG93SW50MzIoY2hpbGQxKTsKICAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIHRydWVDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgZmFsc2VDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggZmU3ZTdmYzBjZmMxMzdjZmRjZGFlMzkwMzYxYjVkNzBjZDQ0M2MyZi4uODE2NzY4NTc1YmNh
MTQ5MTY4MmVkZWUxM2RkNTFkMTAwN2FmZmRlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTYx
LDYgKzYxLDcgQEAKICNpbmNsdWRlICJQcm9maWxlckRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiUmVs
ZWFzZUhlYXBBY2Nlc3NTY29wZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKKyNp
bmNsdWRlICJTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlz
aXRvci5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNh
bXBsZXIuaCIKQEAgLTQyNCw2ICs0MjUsNyBAQCBjbGFzcyBDb21tYW5kTGluZSB7CiAgICAgYm9v
bCBtX2R1bXBNZW1vcnlGb290cHJpbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kdW1wU2FtcGxp
bmdQcm9maWxlckRhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVSZW1vdGVEZWJ1Z2dp
bmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jYW5CbG9ja0lzRmFsc2UgeyBmYWxzZSB9OwogCiAg
ICAgdm9pZCBwYXJzZUFyZ3VtZW50cyhpbnQsIGNoYXIqKik7CiB9OwpAQCAtMzA5Nyw2ICszMDk5
LDcgQEAgc3RhdGljIE5PX1JFVFVSTiB2b2lkIHByaW50VXNhZ2VTdGF0ZW1lbnQoYm9vbCBoZWxw
ID0gZmFsc2UpCiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tZHVtcE9wdGlvbnMgICAgICAgICAg
ICAgIER1bXBzIGFsbCBub24tZGVmYXVsdCBKU0MgVk0gb3B0aW9ucyBiZWZvcmUgY29udGludWlu
Z1xuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tPGpzYyBWTSBvcHRpb24+PTx2YWx1ZT4g
IFNldHMgdGhlIHNwZWNpZmllZCBKU0MgVk0gb3B0aW9uXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVy
ciwgIiAgLS1kZXN0cm95LXZtICAgICAgICAgICAgICAgRGVzdHJveSBWTSBiZWZvcmUgZXhpdGlu
Z1xuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tY2FuLWJsb2NrLWlzLWZhbHNlICAgICAg
IE1ha2UgbWFpbiB0aHJlYWQncyBbW0NhbkJsb2NrXV0gZmFsc2VcbiIpOwogICAgIGZwcmludGYo
c3RkZXJyLCAiXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIkZpbGVzIHdpdGggYSAubWpzIGV4
dGVuc2lvbiB3aWxsIGFsd2F5cyBiZSBldmFsdWF0ZWQgYXMgbW9kdWxlcy5cbiIpOwogICAgIGZw
cmludGYoc3RkZXJyLCAiXG4iKTsKQEAgLTMxMTgsNiArMzEyMSw3IEBAIHZvaWQgQ29tbWFuZExp
bmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICBPcHRpb25z
OjpBbGxvd1VuZmluYWxpemVkQWNjZXNzU2NvcGUgc2NvcGU7CiAgICAgT3B0aW9uczo6aW5pdGlh
bGl6ZSgpOworICAgIE9wdGlvbnM6OnVzZVNoYXJlZEFycmF5QnVmZmVyKCkgPSB0cnVlOwogICAg
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgT3B0aW9uczo6Y3Jhc2hJZkNhbnRBbGxv
Y2F0ZUpJVE1lbW9yeSgpID0gdHJ1ZTsKQEAgLTMyMzEsNiArMzIzNSwxMCBAQCB2b2lkIENvbW1h
bmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAg
ICBtX2Rlc3Ryb3lWTSA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQor
ICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItLWNhbi1ibG9jay1pcy1mYWxzZSIpKSB7CisgICAg
ICAgICAgICBtX2NhbkJsb2NrSXNGYWxzZSA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQogICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItLWRpc2FibGVPcHRpb25zRnJl
ZXppbmdGb3JUZXN0aW5nIikpIHsKICAgICAgICAgICAgIENvbmZpZzo6ZGlzYWJsZUZyZWV6aW5n
Rm9yVGVzdGluZygpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC0zMzI5LDYgKzMzMzcsOCBA
QCBpbnQgcnVuSlNDKGNvbnN0IENvbW1hbmRMaW5lJiBvcHRpb25zLCBib29sIGlzV29ya2VyLCBj
b25zdCBGdW5jJiBmdW5jKQogICAgIFdvcmtlciB3b3JrZXIoV29ya2Vyczo6c2luZ2xldG9uKCkp
OwogICAgIAogICAgIFZNJiB2bSA9IFZNOjpjcmVhdGUoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7Cisg
ICAgaWYgKCFpc1dvcmtlciAmJiBvcHRpb25zLm1fY2FuQmxvY2tJc0ZhbHNlKQorICAgICAgICB2
bS5tX3R5cGVkQXJyYXlDb250cm9sbGVyID0gYWRvcHRSZWYobmV3IEpTQzo6U2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIoZmFsc2UpKTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2Fz
bTo6ZW5hYmxlRmFzdE1lbW9yeSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCmluZGV4IDdlMzBhYmU2YjM5ODdlMTI1OTAwNzBh
MjNkNTMwMmNhZDdjYTcwZGEuLmJlMDVmMTg1NTk2NDUyMTUwYTk0ZDE0NGM3ZGQ4MTE2MjdjNDM5
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3Qu
Y3BwCkBAIC00MywxMSArNDMsMTEgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKEF0b21pY3NPYmplY3QpOwogICAgIG1hY3JvKGV4Y2hhbmdlLCBFeGNoYW5nZSwgMykg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKGlzTG9j
a0ZyZWUsIElzTG9ja0ZyZWUsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgIG1hY3JvKGxvYWQsIExvYWQsIDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIG1hY3JvKG5vdGlmeSwgTm90aWZ5LCAzKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKG9yLCBPciwg
MykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgIG1hY3JvKHN0b3JlLCBTdG9yZSwgMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKHN1YiwgU3ViLCAzKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKHdhaXQsIFdhaXQs
IDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IG1hY3JvKHdha2UsIFdha2UsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIG1hY3JvKHhvciwgWG9yLCAzKQogCiAjZGVmaW5lIERFQ0xBUkVf
RlVOQ19QUk9UTyhsb3dlck5hbWUsIHVwcGVyTmFtZSwgY291bnQpICBcCkBAIC04Myw0NSArODMs
NDMgQEAgdm9pZCBBdG9taWNzT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAj
bG93ZXJOYW1lKSwgY291bnQsIGF0b21pY3NGdW5jICMjIHVwcGVyTmFtZSwgQXRvbWljcyAjIyB1
cHBlck5hbWUgIyMgSW50cmluc2ljLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgRk9SX0VBQ0hfQVRPTUlDU19GVU5DKFBVVF9ESVJFQ1Rf
TkFUSVZFX0ZVTkMpCiAjdW5kZWYgUFVUX0RJUkVDVF9OQVRJVkVfRlVOQworCisgICAgSlNDX1RP
X1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAKIG5hbWVzcGFjZSB7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEFkYXB0b3IsIHR5cGVuYW1lIEZ1bmM+Ci1FbmNvZGVkSlNWYWx1ZSBh
dG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSlNWYWx1ZSogYXJncywgVGhyb3dTY29wZSYgc2NvcGUsIEpTQXJyYXlCdWZmZXJWaWV3
KiB0eXBlZEFycmF5VmlldywgdW5zaWduZWQgYWNjZXNzSW5kZXgsIGNvbnN0IEZ1bmMmIGZ1bmMp
CitFbmNvZGVkSlNWYWx1ZSBhdG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIGFyZ3MsIFRocm93U2NvcGUmIHNjb3BlLCBK
U0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheVZpZXcsIHVuc2lnbmVkIGFjY2Vzc0luZGV4LCBj
b25zdCBGdW5jJiBmdW5jKQogewogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+
KiB0eXBlZEFycmF5ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Kj4o
dHlwZWRBcnJheVZpZXcpOwogICAgIAogICAgIGRvdWJsZSBleHRyYUFyZ3NbRnVuYzo6bnVtRXh0
cmFBcmdzICsgMV07IC8vIEFkZCAxIHRvIGF2b2lkIDAgc2l6ZSBhcnJheSBlcnJvciBpbiBWUy4K
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRnVuYzo6bnVtRXh0cmFBcmdzOyArK2kpIHsK
LSAgICAgICAgZG91YmxlIHZhbHVlID0gYXJnc1syICsgaV0udG9JbnRlZ2VyKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIGRvdWJsZSB2YWx1ZSA9IGFyZ3NbMiArIGldLnRvSW50ZWdlck9ySW5maW5p
dHkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKICAgICAgICAgZXh0cmFBcmdzW2ldID0gdmFs
dWU7CiAgICAgfQogCisgICAgaWYgKHR5cGVkQXJyYXktPmlzRGV0YWNoZWQoKSkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1
ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CisKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGZ1bmModHlwZWRBcnJheS0+dHlwZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4LCBleHRy
YUFyZ3MpKTsKIH0KIAotdW5zaWduZWQgdmFsaWRhdGVkQWNjZXNzSW5kZXgoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFjY2Vzc0luZGV4VmFsdWUsIEpTQXJy
YXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5VmlldykKK3N0YXRpYyB1bnNpZ25lZCB2YWxpZGF0ZUF0
b21pY0FjY2VzcyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXlC
dWZmZXJWaWV3KiB0eXBlZEFycmF5VmlldywgSlNWYWx1ZSBhY2Nlc3NJbmRleFZhbHVlKQogewog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBpZiAoVU5MSUtF
TFkoIWFjY2Vzc0luZGV4VmFsdWUuaXNJbnQzMigpKSkgewotICAgICAgICBkb3VibGUgYWNjZXNz
SW5kZXhEb3VibGUgPSBhY2Nlc3NJbmRleFZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7Cisg
ICAgdW5zaWduZWQgYWNjZXNzSW5kZXggPSAwOworICAgIGlmIChMSUtFTFkoYWNjZXNzSW5kZXhW
YWx1ZS5pc1VJbnQzMigpKSkKKyAgICAgICAgYWNjZXNzSW5kZXggPSBhY2Nlc3NJbmRleFZhbHVl
LmFzVUludDMyKCk7CisgICAgZWxzZSB7CisgICAgICAgIGFjY2Vzc0luZGV4ID0gYWNjZXNzSW5k
ZXhWYWx1ZS50b0luZGV4KGdsb2JhbE9iamVjdCwgImFjY2Vzc0luZGV4Iik7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwotICAgICAgICBpZiAoYWNjZXNzSW5kZXhEb3Vi
bGUgPT0gMCkKLSAgICAgICAgICAgIGFjY2Vzc0luZGV4VmFsdWUgPSBqc051bWJlcigwKTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhY2Nlc3NJbmRleFZhbHVlID0ganNOdW1iZXIoYWNj
ZXNzSW5kZXhEb3VibGUpOwotICAgICAgICAgICAgaWYgKCFhY2Nlc3NJbmRleFZhbHVlLmlzSW50
MzIoKSkgewotICAgICAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiQWNjZXNzIGluZGV4IGlzIG5vdCBhbiBpbnRlZ2VyLiJfcyk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICB9Ci0gICAgaW50MzJf
dCBhY2Nlc3NJbmRleCA9IGFjY2Vzc0luZGV4VmFsdWUuYXNJbnQzMigpOwogICAgIAogICAgIEFT
U0VSVCh0eXBlZEFycmF5Vmlldy0+bGVuZ3RoKCkgPD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElO
VF9NQVgpKTsKLSAgICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGFjY2Vzc0luZGV4KSA+PSB0
eXBlZEFycmF5Vmlldy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAoYWNjZXNzSW5kZXggPj0gdHlwZWRB
cnJheVZpZXctPmxlbmd0aCgpKSB7CiAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiQWNjZXNzIGluZGV4IG91dCBvZiBib3VuZHMgZm9yIGF0b21pYyBhY2Nlc3Mu
Il9zKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTI5LDU1ICsxMjcsODkgQEAgdW5z
aWduZWQgdmFsaWRhdGVkQWNjZXNzSW5kZXgoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIGFjY2UKICAgICByZXR1cm4gYWNjZXNzSW5kZXg7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmM+Ci1FbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJn
cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIGFy
Z3MsIGNvbnN0IEZ1bmMmIGZ1bmMpCitzdGF0aWMgSlNBcnJheUJ1ZmZlclZpZXcqIHZhbGlkYXRl
VHlwZWRBcnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHR5cGVkQXJy
YXlWYWx1ZSkKIHsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNWYWx1ZSB0eXBlZEFycmF5
VmFsdWUgPSBhcmdzWzBdOwogICAgIGlmICghdHlwZWRBcnJheVZhbHVlLmlzQ2VsbCgpKSB7Ci0g
ICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBh
cmd1bWVudCBtdXN0IGJlIGEgY2VsbC4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiQXJndW1lbnQgbmVlZHMgdG8gYmUgYSB0eXBlZCBhcnJheS4iX3MpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgCisKICAgICBKU0NlbGwqIHR5cGVkQXJyYXlD
ZWxsID0gdHlwZWRBcnJheVZhbHVlLmFzQ2VsbCgpOwotICAgIAotICAgIEpTVHlwZSB0eXBlID0g
dHlwZWRBcnJheUNlbGwtPnR5cGUoKTsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIElu
dDhBcnJheVR5cGU6Ci0gICAgY2FzZSBJbnQxNkFycmF5VHlwZToKLSAgICBjYXNlIEludDMyQXJy
YXlUeXBlOgotICAgIGNhc2UgVWludDhBcnJheVR5cGU6Ci0gICAgY2FzZSBVaW50MTZBcnJheVR5
cGU6Ci0gICAgY2FzZSBVaW50MzJBcnJheVR5cGU6Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBh
cnJheSBhcmd1bWVudCBtdXN0IGJlIGFuIEludDhBcnJheSwgSW50MTZBcnJheSwgSW50MzJBcnJh
eSwgVWludDhBcnJheSwgVWludDE2QXJyYXksIG9yIFVpbnQzMkFycmF5LiJfcyk7Ci0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgaWYgKCFpc1R5cGVk
Vmlldyh0eXBlZEFycmF5Q2VsbC0+Y2xhc3NJbmZvKHZtKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBl
KSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQXJndW1l
bnQgbmVlZHMgdG8gYmUgYSB0eXBlZCBhcnJheS4iX3MpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9Ci0gICAgCi0gICAgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3ID0g
anNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odHlwZWRBcnJheUNlbGwpOwotICAgIGlmICghdHlw
ZWRBcnJheVZpZXctPmlzU2hhcmVkKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3Qgd3JhcCBhIFNoYXJlZEFy
cmF5QnVmZmVyLiJfcyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisKKyAgICBKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheSA9IGpzQ2FzdDxKU0Fy
cmF5QnVmZmVyVmlldyo+KHR5cGVkQXJyYXlDZWxsKTsKKyAgICBpZiAodHlwZWRBcnJheS0+aXNE
ZXRhY2hlZCgpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJBcmd1bWVudCB0eXBlZCBhcnJheSBpcyBkZXRhY2hlZC4iX3MpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgCi0gICAgdW5zaWduZWQgYWNjZXNzSW5kZXggPSB2YWxpZGF0
ZWRBY2Nlc3NJbmRleCh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzWzFdLCB0eXBlZEFycmF5Vmlldyk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpKTsKLSAgICAKLSAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICByZXR1cm4gdHlwZWRBcnJh
eTsKK30KKworZW51bSBjbGFzcyBUeXBlZEFycmF5T3BlcmF0aW9uTW9kZSB7IFJlYWQsIFdyaXRl
IH07Cit0ZW1wbGF0ZTxUeXBlZEFycmF5T3BlcmF0aW9uTW9kZSBtb2RlPgoraW5saW5lIEpTQXJy
YXlCdWZmZXJWaWV3KiB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgdHlwZWRBcnJheVZhbHVlKQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheSA9IHZhbGlkYXRlVHlwZWRB
cnJheShnbG9iYWxPYmplY3QsIHR5cGVkQXJyYXlWYWx1ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIGNvbnN0ZXhwciAobW9kZSA9PSBUeXBlZEFycmF5
T3BlcmF0aW9uTW9kZTo6V3JpdGUpIHsKKyAgICAgICAgc3dpdGNoICh0eXBlZEFycmF5LT50eXBl
KCkpIHsKKyAgICAgICAgY2FzZSBJbnQzMkFycmF5VHlwZToKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgIlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3QgYmUgYW4gSW50MzJBcnJheS4iX3Mp
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIHN3aXRjaCAodHlwZWRBcnJheS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSW50OEFycmF5
VHlwZToKKyAgICAgICAgY2FzZSBJbnQxNkFycmF5VHlwZToKKyAgICAgICAgY2FzZSBJbnQzMkFy
cmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50OEFycmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50
MTZBcnJheVR5cGU6CisgICAgICAgIGNhc2UgVWludDMyQXJyYXlUeXBlOgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQgbXVzdCBiZSBhbiBJbnQ4QXJy
YXksIEludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQ4QXJyYXksIFVpbnQxNkFycmF5LCBvciBV
aW50MzJBcnJheS4iX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAg
IH0KKyAgICByZXR1cm4gdHlwZWRBcnJheTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4K
K0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIGFyZ3MsIGNvbnN0IEZ1bmMmIGZ1bmMp
Cit7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNB
cnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3ID0gdmFsaWRhdGVJbnRlZ2VyVHlwZWRBcnJh
eTxUeXBlZEFycmF5T3BlcmF0aW9uTW9kZTo6UmVhZD4oZ2xvYmFsT2JqZWN0LCBhcmdzWzBdKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgdW5zaWduZWQgYWNj
ZXNzSW5kZXggPSB2YWxpZGF0ZUF0b21pY0FjY2Vzcyh2bSwgZ2xvYmFsT2JqZWN0LCB0eXBlZEFy
cmF5VmlldywgYXJnc1sxXSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KworICAgIHN3aXRjaCAodHlwZWRBcnJheVZpZXctPnR5cGUoKSkgewogICAgIGNhc2UgSW50OEFy
cmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxJbnQ4
QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vz
c0luZGV4LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8
SW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBh
Y2Nlc3NJbmRleCwgZnVuYyk7CiAgICAgY2FzZSBJbnQxNkFycmF5VHlwZToKLSAgICAgICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxJbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVj
dCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAg
ICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlPEludDE2QWRhcHRvcj4oZ2xvYmFs
T2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsK
ICAgICBjYXNlIEludDMyQXJyYXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9u
V2l0aEFyZ3NDYXNlPEludDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlw
ZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1Jl
YWRNb2RpZnlXcml0ZUNhc2U8SW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3Bl
LCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgVWludDhBcnJh
eVR5cGU6Ci0gICAgICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2U8VWludDhB
ZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNz
SW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxV
aW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBh
Y2Nlc3NJbmRleCwgZnVuYyk7CiAgICAgY2FzZSBVaW50MTZBcnJheVR5cGU6Ci0gICAgICAgIHJl
dHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2U8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAg
ICAgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8VWludDE2QWRhcHRvcj4oZ2xv
YmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5j
KTsKICAgICBjYXNlIFVpbnQzMkFycmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJh
dGlvbldpdGhBcmdzQ2FzZTxVaW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3Bl
LCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRv
bWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxVaW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3Ms
IHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC0xODUsMTIgKzIxNywxMiBAQCBFbmNv
ZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgotRW5jb2Rl
ZEpTVmFsdWUgYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEZ1bmMmIGZ1bmMpCitFbmNvZGVkSlNW
YWx1ZSBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEZ1bmMmIGZ1bmMpCiB7CiAgICAgSlNWYWx1ZSBh
cmdzWzIgKyBGdW5jOjpudW1FeHRyYUFyZ3NdOwogICAgIGZvciAodW5zaWduZWQgaSA9IDIgKyBG
dW5jOjpudW1FeHRyYUFyZ3M7IGktLTspCiAgICAgICAgIGFyZ3NbaV0gPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KGkpOwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdCwgYXJncywgZnVuYyk7CisgICAgcmV0dXJuIGF0b21pY1Jl
YWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCwgYXJncywgZnVu
Yyk7CiB9CiAKIHN0cnVjdCBBZGRGdW5jIHsKQEAgLTMxNCwyMiArMzQ2LDIyIEBAIEVuY29kZWRK
U1ZhbHVlIGlzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBh
cmcpCiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0FkZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFkZEZ1
bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgQWRkRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21p
Y3NGdW5jQW5kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgQW5kRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdy
aXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNDb21wYXJlRXhjaGFuZ2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDb21wYXJlRXhj
aGFuZ2VGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0V4Y2hhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVy
YXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgRXhjaGFuZ2VGdW5jKCkpOwor
ICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IEV4Y2hhbmdlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NG
dW5jSXNMb2NrRnJlZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKQEAgLTMzOSw3MSArMzcxLDU3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihhdG9taWNzRnVuY0lzTG9ja0ZyZWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0xvYWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBMb2FkRnVu
YygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBMb2FkRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21p
Y3NGdW5jT3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBPckZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0
ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgT3JGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNTdG9yZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9u
V2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFN0b3JlRnVuYygpKTsKKyAgICByZXR1
cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdG9yZUZ1
bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1N1YiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IFN1YkZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgU3ViRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGF0b21pY3NGdW5jV2FpdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIAotICAgIEpTSW50MzJB
cnJheSogdHlwZWRBcnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNJbnQzMkFycmF5Kj4odm0sIGNhbGxG
cmFtZS0+YXJndW1lbnQoMCkpOwotICAgIGlmICghdHlwZWRBcnJheSkgewotICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgZm9yIHdhaXQvd2Fr
ZSBtdXN0IGJlIGFuIEludDMyQXJyYXkuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0gICAgCisKKyAgICBhdXRvKiB0eXBlZEFycmF5
QnVmZmVyID0gdmFsaWRhdGVJbnRlZ2VyVHlwZWRBcnJheTxUeXBlZEFycmF5T3BlcmF0aW9uTW9k
ZTo6V3JpdGU+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvKiB0eXBlZEFycmF5ID0ganND
YXN0PEpTSW50MzJBcnJheSo+KHR5cGVkQXJyYXlCdWZmZXIpOworCiAgICAgaWYgKCF0eXBlZEFy
cmF5LT5pc1NoYXJlZCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJUeXBlZCBhcnJheSBmb3Igd2FpdC93YWtlIG11c3Qgd3JhcCBhIFNoYXJlZEFycmF5
QnVmZmVyLiJfcyk7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJUeXBlZCBhcnJheSBmb3Igd2FpdC9ub3RpZnkgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZm
ZXIuIl9zKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICB9CiAKLSAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4
KHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIHR5cGVkQXJyYXkpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKSk7Ci0gICAgCisgICAgdW5zaWduZWQgYWNjZXNzSW5kZXggPSB2YWxpZGF0ZUF0b21pY0Fj
Y2Vzcyh2bSwgZ2xvYmFsT2JqZWN0LCB0eXBlZEFycmF5LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEp
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCiAgICAgaW50MzJfdCog
cHRyID0gdHlwZWRBcnJheS0+dHlwZWRWZWN0b3IoKSArIGFjY2Vzc0luZGV4OwotICAgIAorCiAg
ICAgaW50MzJfdCBleHBlY3RlZFZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgyKS50b0ludDMy
KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKKwogICAgIGRvdWJsZSB0aW1lb3V0SW5NaWxs
aXNlY29uZHMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDMpLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpKTsKLSAgICAKKyAgICBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgp
OworICAgIGlmICghc3RkOjppc25hbih0aW1lb3V0SW5NaWxsaXNlY29uZHMpKQorICAgICAgICB0
aW1lb3V0ID0gc3RkOjptYXgoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh0aW1lb3V0SW5NaWxs
aXNlY29uZHMpLCAwX3MpOworCiAgICAgaWYgKCF2bS5tX3R5cGVkQXJyYXlDb250cm9sbGVyLT5p
c0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVhZCgpKSB7CiAgICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBdG9taWNzLndhaXQgY2Fubm90IGJlIGNhbGxl
ZCBmcm9tIHRoZSBjdXJyZW50IHRocmVhZC4iX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIH0KLSAgICAKLSAgICBTZWNvbmRzIHRpbWVvdXQg
PSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7Ci0KLSAg
ICAvLyBUaGlzIGNvdmVycyB0aGUgcHJvcG9zZWQgcnVsZToKLSAgICAvLwotICAgIC8vIDQuIElm
IHRpbWVvdXQgaXMgbm90IHByb3ZpZGVkIG9yIGlzIHVuZGVmaW5lZCB0aGVuIGxldCB0IGJlICtp
bmYuIE90aGVyd2lzZToKLSAgICAvLyAgICAgYS4gTGV0IHEgYmUgPyBUb051bWJlcih0aW1lb3V0
KS4KLSAgICAvLyAgICAgYi4gSWYgcSBpcyBOYU4gdGhlbiBsZXQgdCBiZSAraW5mLCBvdGhlcndp
c2UgbGV0IHQgYmUgbWF4KDAsIHEpLgotICAgIC8vCi0gICAgLy8gY2FsbEZyYW1lLT5hcmd1bWVu
dCgzKSByZXR1cm5zIHVuZGVmaW5lZCBpZiBpdCdzIG5vdCBwcm92aWRlZCBhbmQgVG9OdW1iZXIo
dW5kZWZpbmVkKSByZXR1cm5zIE5hTiwKLSAgICAvLyBzbyBOYU4gaXMgdGhlIG9ubHkgc3BlY2lh
bCBjYXNlLgotICAgIGlmICghc3RkOjppc25hbih0aW1lb3V0KSkKLSAgICAgICAgdGltZW91dCA9
IHN0ZDo6bWF4KDBfcywgdGltZW91dCk7Ci0gICAgZWxzZQotICAgICAgICB0aW1lb3V0ID0gU2Vj
b25kczo6aW5maW5pdHkoKTsKLSAgICAKKwogICAgIGJvb2wgZGlkUGFzc1ZhbGlkYXRpb24gPSBm
YWxzZTsKICAgICBQYXJraW5nTG90OjpQYXJrUmVzdWx0IHJlc3VsdDsKICAgICB7CkBAIC00Mjcs
NDEgKzQ0NSwzOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWl0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNTdHJpbmcodm0sIHJlc3VsdFN0cmluZykpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWtlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21p
Y3NGdW5jTm90aWZ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgCi0gICAgSlNJbnQzMkFycmF5
KiB0eXBlZEFycmF5ID0ganNEeW5hbWljQ2FzdDxKU0ludDMyQXJyYXkqPih2bSwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCF0eXBlZEFycmF5KSB7Ci0gICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBmb3Igd2FpdC93YWtlIG11
c3QgYmUgYW4gSW50MzJBcnJheS4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAgICAKLSAgICBpZiAoIXR5cGVkQXJyYXktPmlzU2hh
cmVkKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5
cGVkIGFycmF5IGZvciB3YWl0L3dha2UgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9z
KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9
CiAKLSAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4KHZtLCBn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIHR5cGVkQXJyYXkpOwotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7
Ci0gICAgCi0gICAgaW50MzJfdCogcHRyID0gdHlwZWRBcnJheS0+dHlwZWRWZWN0b3IoKSArIGFj
Y2Vzc0luZGV4OwotICAgIAorICAgIGF1dG8qIHR5cGVkQXJyYXlCdWZmZXIgPSB2YWxpZGF0ZUlu
dGVnZXJUeXBlZEFycmF5PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpXcml0ZT4oZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIGF1dG8qIHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNJbnQzMkFycmF5Kj4o
dHlwZWRBcnJheUJ1ZmZlcik7CisKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRl
QXRvbWljQWNjZXNzKHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJyYXksIGNhbGxGcmFtZS0+YXJn
dW1lbnQoMSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKICAgICBK
U1ZhbHVlIGNvdW50VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDIpOwogICAgIHVuc2lnbmVk
IGNvdW50ID0gVUlOVF9NQVg7CiAgICAgaWYgKCFjb3VudFZhbHVlLmlzVW5kZWZpbmVkKCkpIHsK
LSAgICAgICAgaW50MzJfdCBjb3VudEludCA9IGNvdW50VmFsdWUudG9JbnQzMihnbG9iYWxPYmpl
Y3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSkpOwotICAgICAgICBjb3VudCA9IHN0ZDo6bWF4KDAsIGNvdW50SW50KTsK
KyAgICAgICAgZG91YmxlIGNvdW50SW50ID0gY291bnRWYWx1ZS50b0ludGVnZXJPckluZmluaXR5
KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgICAgIGRvdWJsZSBjb3VudERvdWJsZSA9IHN0ZDo6bWF4KDAuMCwgY291bnRJbnQpOwor
ICAgICAgICBpZiAoY291bnREb3VibGUgPCBVSU5UX01BWCkKKyAgICAgICAgICAgIGNvdW50ID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvdW50RG91YmxlKTsKICAgICB9CiAKKyAgICBpZiAoIXR5
cGVkQXJyYXktPmlzU2hhcmVkKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoMCkpOworCisgICAgaW50MzJfdCogcHRyID0gdHlwZWRBcnJheS0+dHlwZWRWZWN0b3Io
KSArIGFjY2Vzc0luZGV4OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoUGFy
a2luZ0xvdDo6dW5wYXJrQ291bnQocHRyLCBjb3VudCkpKTsKIH0KIAogSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGF0b21pY3NGdW5jWG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRo
QXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgWG9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRv
bWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkpOwog
fQogCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oImZyYW1lLWFkZHJlc3MiKQpAQCAtNDcyLDcgKzQ4
Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQWRkLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtK
U1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRl
Y29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBn
bG9iYWxPYmplY3QsIGFyZ3MsIEFkZEZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2Rp
ZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBBZGRGdW5jKCkpOwogfQogCiBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0FuZCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCkBAIC00ODEsNyArNDk2LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBbmQsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFs
dWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2Rl
KG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2Jh
bE9iamVjdCwgYXJncywgQW5kRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdy
aXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFuZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQ29tcGFyZUV4Y2hhbmdlLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBleHBlY3RlZCwgRW5jb2RlZEpT
VmFsdWUgbmV3VmFsdWUpKQpAQCAtNDkwLDcgKzUwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BdG9taWNzQ29tcGFyZUV4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFs
dWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShleHBlY3RlZCksIEpTVmFsdWU6OmRl
Y29kZShuZXdWYWx1ZSl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwg
Z2xvYmFsT2JqZWN0LCBhcmdzLCBDb21wYXJlRXhjaGFuZ2VGdW5jKCkpOworICAgIHJldHVybiBh
dG9taWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgQ29tcGFyZUV4Y2hh
bmdlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21p
Y3NFeGNoYW5nZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFs
dWUgb3BlcmFuZCkpCkBAIC00OTksNyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkF0b21pY3NFeGNoYW5nZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6
ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRv
bWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgRXhjaGFuZ2VGdW5j
KCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwg
YXJncywgRXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXRvbWljc0lzTG9ja0ZyZWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpCkBAIC01MTYsNyArNTMxLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NMb2FkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6
ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpfTsKLSAgICByZXR1cm4gYXRvbWlj
T3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgTG9hZEZ1bmMoKSk7Cisg
ICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBM
b2FkRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21p
Y3NPciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3Bl
cmFuZCkpCkBAIC01MjUsNyArNTQwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkF0b21pY3NPciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAg
IEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgT3JGdW5jKCkpOworICAgIHJl
dHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgT3JGdW5j
KCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N0b3Jl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5k
KSkKQEAgLTUzNCw3ICs1NDksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QXRvbWljc1N0b3JlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNW
YWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5k
ZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRp
b25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBTdG9yZUZ1bmMoKSk7CisgICAgcmV0
dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBTdG9yZUZ1
bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3Vi
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5k
KSkKQEAgLTU0Myw3ICs1NTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QXRvbWljc1N1YiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNW
YWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5k
ZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRp
b25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBTdWJGdW5jKCkpOworICAgIHJldHVy
biBhdG9taWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgU3ViRnVuYygp
KTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NYb3IsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpA
QCAtNTUyLDcgKzU2Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9t
aWNzWG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVl
IGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCks
IEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldp
dGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFhvckZ1bmMoKSk7CisgICAgcmV0dXJuIGF0
b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBYb3JGdW5jKCkpOwog
fQogCiBJR05PUkVfV0FSTklOR1NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBkOTViZDliZjY0ZGZlMzBhNDRjNDIyYjIy
MzkyNGMxYWJhMzlmY2Q1Li5jMGZhMjI4NzY0NDQxYWQ2YTYzYTRlMDZkY2YwNGNiNWE0N2FiOWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgSlNDX0NPTU1PTl9JREVOVElGSUVSU19F
QUNIX1BST1BFUlRZX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhBcnJheSkgXAogICAgIG1hY3Jv
KEFycmF5QnVmZmVyKSBcCisgICAgbWFjcm8oQXRvbWljcykgXAogICAgIG1hY3JvKEJZVEVTX1BF
Ul9FTEVNRU5UKSBcCiAgICAgbWFjcm8oQmlnSW50KSBcCiAgICAgbWFjcm8oQm9vbGVhbikgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKaW5kZXggODk2YzFj
Y2RhN2RjODQwMDU4MGY1MjY2MzExMjU4YzQ0YTM2N2I3YS4uMjcyNTNlMzQ5ZWIwZDIyZjBhZmIy
ZjMwMzY3MTAxYzQ0ZjhiNDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRyaW5zaWMuY3BwCkBAIC0yNjEsNiArMjYxLDggQEAgY29uc3QgY2hhciogaW50cmluc2ljTmFt
ZShJbnRyaW5zaWMgaW50cmluc2ljKQogICAgICAgICByZXR1cm4gIkF0b21pY3NJc0xvY2tGcmVl
SW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NMb2FkSW50cmluc2ljOgogICAgICAgICByZXR1
cm4gIkF0b21pY3NMb2FkSW50cmluc2ljIjsKKyAgICBjYXNlIEF0b21pY3NOb3RpZnlJbnRyaW5z
aWM6CisgICAgICAgIHJldHVybiAiQXRvbWljc05vdGlmeUludHJpbnNpYyI7CiAgICAgY2FzZSBB
dG9taWNzT3JJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQXRvbWljc09ySW50cmluc2ljIjsK
ICAgICBjYXNlIEF0b21pY3NTdG9yZUludHJpbnNpYzoKQEAgLTI2OSw4ICsyNzEsNiBAQCBjb25z
dCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVy
biAiQXRvbWljc1N1YkludHJpbnNpYyI7CiAgICAgY2FzZSBBdG9taWNzV2FpdEludHJpbnNpYzoK
ICAgICAgICAgcmV0dXJuICJBdG9taWNzV2FpdEludHJpbnNpYyI7Ci0gICAgY2FzZSBBdG9taWNz
V2FrZUludHJpbnNpYzoKLSAgICAgICAgcmV0dXJuICJBdG9taWNzV2FrZUludHJpbnNpYyI7CiAg
ICAgY2FzZSBBdG9taWNzWG9ySW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkF0b21pY3NYb3JJ
bnRyaW5zaWMiOwogICAgIGNhc2UgUGFyc2VJbnRJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCmluZGV4IGIzOWM1NjUxMDQ1MWMxMmU5YWZiZDlmMjg5
YTg1YmEzYjcwZDdjNDYuLjVjZjI1MGU5NzEzNDdiMjU2NDhlYTZjNmQxZGI3NWQ5NTI1YTgxYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC0xNDYsMTEg
KzE0NiwxMSBAQCBlbnVtIEludHJpbnNpYyA6IHVpbnQ4X3QgewogICAgIEF0b21pY3NFeGNoYW5n
ZUludHJpbnNpYywKICAgICBBdG9taWNzSXNMb2NrRnJlZUludHJpbnNpYywKICAgICBBdG9taWNz
TG9hZEludHJpbnNpYywKKyAgICBBdG9taWNzTm90aWZ5SW50cmluc2ljLAogICAgIEF0b21pY3NP
ckludHJpbnNpYywKICAgICBBdG9taWNzU3RvcmVJbnRyaW5zaWMsCiAgICAgQXRvbWljc1N1Yklu
dHJpbnNpYywKICAgICBBdG9taWNzV2FpdEludHJpbnNpYywKLSAgICBBdG9taWNzV2FrZUludHJp
bnNpYywKICAgICBBdG9taWNzWG9ySW50cmluc2ljLAogICAgIFBhcnNlSW50SW50cmluc2ljLAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVy
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZm
ZXJQcm90b3R5cGUuY3BwCmluZGV4IDNkMzYxODdjYjhjYjc2MTg1NDU0MTYwNjc3NTllNGMyNjkz
ZGRiNjEuLjY3MjI1ZTc2ODI0ZmNkZmE5NDIwYWRjMTU4YjY0MTM0MWI0OTRjYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90
b3R5cGUuY3BwCkBAIC0zMyw3MiArMzMsODQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOwogc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNC
eXRlTGVuZ3RoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5
QnVmZmVyUHJvdG9GdW5jU2xpY2UpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c2hhcmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgYXJyYXlCdWZmZXJTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIGFycmF5QnVmZmVyVmFsdWUsIEpTVmFsdWUgc3RhcnRWYWx1ZSwgSlNWYWx1ZSBlbmRWYWx1
ZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtb2RlKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBKU0FycmF5QnVmZmVyKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVm
ZmVyKj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghdGhpc09iamVjdCB8
fCB0aGlzT2JqZWN0LT5pbXBsKCktPmlzU2hhcmVkKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBvZiBzbGljZSBtdXN0IGJl
IGFuIEFycmF5QnVmZmVyLiJfcyk7CisgICAgSlNBcnJheUJ1ZmZlciogdGhpc09iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlcio+KHZtLCBhcnJheUJ1ZmZlclZhbHVlKTsKKyAgICBp
ZiAoIXRoaXNPYmplY3QgfHwgKG1vZGUgIT0gdGhpc09iamVjdC0+aW1wbCgpLT5zaGFyaW5nTW9k
ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgbWFrZVN0cmluZygiUmVjZWl2ZXIgbXVzdCBiZSBhbiAiX3MsIG1vZGUgPT0gQXJyYXlCdWZm
ZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCA/ICJBcnJheUJ1ZmZlci4iX3MgOiAiU2hhcmVkQXJyYXlC
dWZmZXIuIl9zKSk7CisKKyAgICBpZiAobW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpE
ZWZhdWx0ICYmIHRoaXNPYmplY3QtPmltcGwoKS0+aXNEZXRhY2hlZCgpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgaXMgZGV0
YWNoZWQuIl9zKTsKIAotICAgIGRvdWJsZSBiZWdpbiA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CisgICAgZG91YmxlIGJlZ2luID0gc3RhcnRWYWx1ZS50
b0ludGVnZXJPckluZmluaXR5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgCisKICAgICBkb3VibGUgZW5kOwotICAg
IGlmICghY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgIGVu
ZCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnRlZ2VyKGdsb2JhbE9iamVj
dCk7CisgICAgaWYgKCFlbmRWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIGVuZCA9IGVu
ZFZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIGVuZCA9IHRoaXNPYmplY3QtPmltcGwoKS0+Ynl0ZUxlbmd0aCgpOwotICAgIAorCisgICAg
Ly8gMjMuIElmIElzRGV0YWNoZWRCdWZmZXIoTykgaXMgdHJ1ZSwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgorICAgIC8vIENoZWNrIGRldGFjaCBzdGF0dXMgYWdhaW4gc2luY2UgdG9JbnRl
Z2VyT3JJbmZpbml0eSBjYW4gaGF2ZSBzaWRlIGVmZmVjdC4KKyAgICBpZiAobW9kZSA9PSBBcnJh
eUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ICYmIHRoaXNPYmplY3QtPmltcGwoKS0+aXNEZXRh
Y2hlZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiUmVjZWl2ZXIgaXMgZGV0YWNoZWQuIl9zKTsKKwogICAgIGF1dG8gbmV3QnVmZmVyID0g
dGhpc09iamVjdC0+aW1wbCgpLT5zbGljZShiZWdpbiwgZW5kKTsKICAgICBpZiAoIW5ld0J1ZmZl
cikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd091dE9mTWVtb3J5RXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSkpOwotICAgIAorCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBnbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3RydWN0dXJlKG5ld0J1ZmZlci0+c2hhcmluZ01v
ZGUoKSk7Ci0gICAgCisKICAgICBKU0FycmF5QnVmZmVyKiByZXN1bHQgPSBKU0FycmF5QnVmZmVy
OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShuZXdCdWZmZXIpKTsKLSAgICAKKwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotLy8gaHR0cDovL3RjMzkuZ2l0
aHViLmlvL2VjbWFzY3JpcHRfc2hhcmVkbWVtL3NobWVtLmh0bWwjc2VjLWdldC1hcnJheWJ1ZmZl
ci5wcm90b3R5cGUuYnl0ZWxlbmd0aAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVm
ZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcnJheUJ1
ZmZlckJ5dGVMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcnJh
eUJ1ZmZlclZhbHVlLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIG1vZGUpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7
Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKKyAgICBpZiAoIWFycmF5QnVmZmVyVmFs
dWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlJlY2VpdmVyIHNob3VsZCBiZSBhbiBhcnJheSBidWZmZXIgYnV0IHdhcyBu
b3QgYW4gb2JqZWN0Il9zKTsKIAotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTQXJyYXlCdWZmZXIqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNPYmplY3QpCi0g
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNl
aXZlciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVyIl9zKTsKLSAgICBpZiAodGhpc09iamVjdC0+
aXNTaGFyZWQoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgIlJlY2VpdmVyIHNob3VsZCBub3QgYmUgYSBzaGFyZWQgYXJyYXkgYnVmZmVyIl9z
KTsKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4o
dm0sIGFycmF5QnVmZmVyVmFsdWUpOworICAgIGlmICghdGhpc09iamVjdCB8fCAobW9kZSAhPSB0
aGlzT2JqZWN0LT5pbXBsKCktPnNoYXJpbmdNb2RlKCkpKQorICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBtYWtlU3RyaW5nKCJSZWNlaXZlciBtdXN0
IGJlIGFuICJfcywgbW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ID8gIkFy
cmF5QnVmZmVyLiJfcyA6ICJTaGFyZWRBcnJheUJ1ZmZlci4iX3MpKTsKIAotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmlt
cGwoKS0+Ynl0ZUxlbmd0aCgpKSkpOworICAgIGlmIChtb2RlID09IEFycmF5QnVmZmVyU2hhcmlu
Z01vZGU6OkRlZmF1bHQgJiYgdGhpc09iamVjdC0+aW1wbCgpLT5pc0RldGFjaGVkKCkpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworCisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5pbXBsKCktPmJ5dGVMZW5ndGgoKSkp
OwogfQogCi0vLyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0vc2ht
ZW0uaHRtbCNTdHJ1Y3R1cmVkRGF0YS5TaGFyZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUuZ2V0X2J5
dGVMZW5ndGgKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3Rv
R2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQ
cm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
UmVjZWl2ZXIgc2hvdWxkIGJlIGFuIGFycmF5IGJ1ZmZlciBidXQgd2FzIG5vdCBhbiBvYmplY3Qi
X3MpOworICAgIHJldHVybiBhcnJheUJ1ZmZlclNsaWNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2FsbEZyYW1lLT5hcmd1bWVu
dCgxKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCk7Cit9CisKKy8vIGh0dHA6Ly90
YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9zaG1lbS5odG1sI3NlYy1nZXQtYXJy
YXlidWZmZXIucHJvdG90eXBlLmJ5dGVsZW5ndGgKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihh
cnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIGFycmF5QnVm
ZmVyQnl0ZUxlbmd0aChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIEFycmF5
QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQpOworfQogCi0gICAgYXV0byogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlcio+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICgh
dGhpc09iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgIlJlY2VpdmVyIHNob3VsZCBiZSBhbiBhcnJheSBidWZmZXIiX3MpOwotICAgIGlm
ICghdGhpc09iamVjdC0+aXNTaGFyZWQoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHNoYXJlZCBhcnJh
eSBidWZmZXIiX3MpOworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVy
UHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyU2xpY2UoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDEpLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpTaGFyZWQpOworfQogCi0g
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhp
c09iamVjdC0+aW1wbCgpLT5ieXRlTGVuZ3RoKCkpKSk7CisvLyBodHRwOi8vdGMzOS5naXRodWIu
aW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0vc2htZW0uaHRtbCNTdHJ1Y3R1cmVkRGF0YS5TaGFyZWRB
cnJheUJ1ZmZlci5wcm90b3R5cGUuZ2V0X2J5dGVMZW5ndGgKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0
dXJuIGFycmF5QnVmZmVyQnl0ZUxlbmd0aChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCksIEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OlNoYXJlZCk7CiB9CiAKIGNvbnN0IENsYXNz
SW5mbyBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpzX2luZm8gPSB7CkBAIC0xMTQsMTIgKzEyNiwx
NCBAQCB2b2lkIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICAKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1Rh
Z1N5bWJvbCwganNTdHJpbmcodm0sIGFycmF5QnVmZmVyU2hhcmluZ01vZGVOYW1lKHNoYXJpbmdN
b2RlKSksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSk7Ci0gICAgaWYgKHNoYXJpbmdNb2RlID09IEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpCisgICAgaWYgKHNoYXJpbmdNb2RlID09IEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpIHsKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAg
ICAgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPmJ5dGVMZW5ndGgsIGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsK
LSAgICBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIHNoYXJlZEFycmF5QnVmZmVy
UHJvdG9GdW5jU2xpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAyKTsKICAgICAgICAgSlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVMZW5ndGgsIHNoYXJlZEFycmF5QnVmZmVyUHJvdG9H
ZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICB9CiB9CiAKIEpTQXJyYXlCdWZmZXJQcm90b3R5
cGUqIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUJ1ZmZlclNoYXJpbmdN
b2RlIHNoYXJpbmdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCmluZGV4IGI1YTliYjkzNjlmNTE2ZDRlMzU5OTQ1NDBkMWE0Zjg5OTFhOTIyNGUuLjJlYjJh
YjYzZmJjMDcyNDQ0OWE3NWZmZTUzMGVjYjFhNmFiMDU1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTI5NCw2ICsyOTQsNyBAQCBjbGFzcyBKU1Zh
bHVlIHsKICAgICAvLyBJbnRlZ2VyIGNvbnZlcnNpb25zLgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IGRvdWJsZSB0b0ludGVnZXIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU19FWFBPUlRf
UFJJVkFURSBkb3VibGUgdG9JbnRlZ2VyUHJlc2VydmVOYU4oSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKKyAgICBkb3VibGUgdG9JbnRlZ2VyT3JJbmZpbml0eShKU0dsb2JhbE9iamVjdCopIGNvbnN0
OwogICAgIGludDMyX3QgdG9JbnQzMihKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIHVpbnQz
Ml90IHRvVUludDMyKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgdWludDMyX3QgdG9JbmRl
eChKU0dsb2JhbE9iamVjdCosIGNvbnN0IGNoYXIqIGVycm9yTmFtZSkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBm
ZDY4MmJiYjYzOTU2OGRmZWQyNWU0ZGFhNGFjMWRhYjk3OTI2ZWVmLi43Mjk4N2YwN2RkOGE1NmQ3
NDEyMGJkZjhjZTE5ZTk2MTc4MWE4NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTc5LDYgKzc5LDE5IEBAIGlubGluZSB1
aW50MzJfdCBKU1ZhbHVlOjp0b0luZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IGNoYXIqIGVycm9yCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU0M6OnRvSW50
MzIoZCkpOwogfQogCisvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlcm9y
aW5maW5pdHkKKy8vIEZJWE1FOiBXZSB3aWxsIHJlcGxhY2UgdG9JbnRlZ2VyIHdpdGggdG9JbnRl
Z2VyT3JJbmZpbml0eS4gVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCB0b0ludGVnZXJPckluZmluaXR5
IHdpbGwgY29udmVydCAtMCB0byArMC4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTg2NDIKK2lubGluZSBkb3VibGUgSlNWYWx1ZTo6dG9JbnRlZ2VyT3JJbmZp
bml0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIGlmIChpc0lu
dDMyKCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7CisgICAgZG91YmxlIGQgPSB0b051bWJl
cihnbG9iYWxPYmplY3QpOworICAgIGlmIChzdGQ6OmlzbmFuKGQpIHx8IGQgPT0gMCkKKyAgICAg
ICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gdHJ1bmMoZCk7Cit9CisKIGlubGluZSBib29sIEpT
VmFsdWU6OmlzVUludDMyKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNJbnQzMigpICYmIGFzSW50
MzIoKSA+PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25z
LmgKaW5kZXggMGNjZmEwMDFhNmY3YzQ1OTE4ZGMwM2VmNjhlOWM0ZmQ0MmMzZjhmYS4uZmY0YzAw
MmNhYmQ4ZmUxM2ZlMzgwOThmOWFiMjVhOGI3NDQxZGViMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5j
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCkBAIC0zODgsNyArMzg4LDYgQEAgQUxXQVlT
X0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1
bmNCeXRlT2Zmc2V0KFZNJiwKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJz
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQogewotLy8gICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICAvLyAyMi4yLjMuMjEKQEAgLTQw
NSw3ICs0MDQsNiBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0dsbwogdGVtcGxhdGU8dHlwZW5hbWUg
Vmlld0NsYXNzPgogQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY1NvcnQoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLS8vICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
Ly8gMjIuMi4zLjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKaW5kZXggODQ4ZTQwMTZiZjYxMThiYmNkMGFiNmYwODcyOTMyOTIyODU3NDgx
Ni4uYjVjNWYxNDcwODg2MTI2OGYwOTQxOWViNTJkY2Y1OTc5NDY3ZjRiOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNDMsNiAr
NDMsNyBAQAogI2luY2x1ZGUgIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNp
bmNsdWRlICJBc3luY0dlbmVyYXRvclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkFzeW5jSXRlcmF0
b3JQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJBdG9taWNzT2JqZWN0LmgiCiAjaW5jbHVkZSAiQmln
SW50Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJCaWdJbnRPYmplY3QuaCIKICNpbmNsdWRlICJC
aWdJbnRQcm90b3R5cGUuaCIKQEAgLTgyOCwxMCArODI5LDEyIEBAIHZvaWQgSlNHbG9iYWxPYmpl
Y3Q6OmluaXQoVk0mIHZtKQogICAgICAgICBbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNGdW5jdGlv
bj4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0
LnZtLCBpbml0Lm93bmVyLCAxLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPnBhcnNlRmxvYXQuc3Ry
aW5nKCksIGdsb2JhbEZ1bmNQYXJzZUZsb2F0LCBOb0ludHJpbnNpYykpOwogICAgICAgICB9KTsK
LSAgICAKKwogI2lmIEVOQUJMRShTSEFSRURfQVJSQVlfQlVGRkVSKQotICAgIG1fc2hhcmVkQXJy
YXlCdWZmZXJQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2Rl
OjpTaGFyZWQpKTsKLSAgICBtX3NoYXJlZEFycmF5QnVmZmVyU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3NoYXJlZEFycmF5
QnVmZmVyUHJvdG90eXBlLmdldCgpKSk7CisgICAgaWYgKE9wdGlvbnM6OnVzZVNoYXJlZEFycmF5
QnVmZmVyKCkpIHsKKyAgICAgICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5zZXQodm0s
IHRoaXMsIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNBcnJheUJ1
ZmZlclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSksIEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OlNoYXJlZCkpOworICAgICAgICBtX3No
YXJlZEFycmF5QnVmZmVyU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlcjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3NoYXJlZEFycmF5QnVmZmVyUHJvdG90eXBlLmdldCgp
KSk7CisgICAgfQogI2VuZGlmCiAKICAgICBtX2l0ZXJhdG9yUHJvdG90eXBlLnNldCh2bSwgdGhp
cywgSXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSXRlcmF0b3JQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CkBA
IC04OTksMTAgKzkwMiwxMyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAg
ICAKICNpZiBFTkFCTEUoU0hBUkVEX0FSUkFZX0JVRkZFUikKICAgICBKU1NoYXJlZEFycmF5QnVm
ZmVyQ29uc3RydWN0b3IqIHNoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3IgPSBudWxscHRyOwot
ICAgIHNoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3IgPSBKU1NoYXJlZEFycmF5QnVmZmVyQ29u
c3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3NoYXJl
ZEFycmF5QnVmZmVyUHJvdG90eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0KCkp
OwotICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwgc2hhcmVkQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOworICAgIEF0b21pY3NPYmplY3QqIGF0b21pY3NPYmplY3QgPSBudWxscHRyOwor
ICAgIGlmIChPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpKSB7CisgICAgICAgIHNoYXJl
ZEFycmF5QnVmZmVyQ29uc3RydWN0b3IgPSBKU1NoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3I6
OmNyZWF0ZSh2bSwgSlNTaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3NoYXJlZEFycmF5QnVm
ZmVyUHJvdG90eXBlLmdldCgpLCBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXIuZ2V0KCkpOworICAgICAg
ICBtX3NoYXJlZEFycmF5QnVmZmVyUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIHNoYXJlZEFycmF5QnVmZmVyQ29u
c3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKIAotICAgIEF0b21pY3NPYmplY3QqIGF0b21pY3NPYmplY3QgPSBBdG9taWNzT2JqZWN0
OjpjcmVhdGUodm0sIHRoaXMsIEF0b21pY3NPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhp
cywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICAgICAgYXRvbWljc09iamVjdCA9IEF0
b21pY3NPYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgQXRvbWljc09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOworICAgIH0KICNlbmRpZgog
CiAjZGVmaW5lIENSRUFURV9DT05TVFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUs
IGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJh
c2UsIGZlYXR1cmVGbGFnKSBcCkBAIC05ODIsOCArOTg4LDEwIEBAIGNhcGl0YWxOYW1lICMjIENv
bnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0
YWxOYW1lCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPlJlZ0V4cCwgcmVnRXhwQ29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIAogI2lmIEVOQUJMRShTSEFSRURfQVJSQVlfQlVG
RkVSKQotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5TaGFyZWRBcnJheUJ1ZmZlciwgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiQXRv
bWljcyIpLCBhdG9taWNzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgaWYgKE9wdGlvbnM6OnVzZVNoYXJlZEFycmF5QnVmZmVy
KCkpIHsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPlNoYXJlZEFycmF5QnVmZmVyLCBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAg
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5BdG9t
aWNzLCBhdG9taWNzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CisgICAgfQogI2VuZGlmCiAKICNkZWZpbmUgUFVUX0NPTlNUUlVDVE9S
X0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0
YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKQEAgLTEyMTQs
OSArMTIyMiwxNSBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1lICMjIENv
bnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlua1RpbWVDb25z
dGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmlzVHlwZWRBcnJh
eVZpZXcpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsK
ICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8
SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3LCBJc1R5cGVkQXJyYXlWaWV3SW50cmluc2ljKSk7
CiAgICAgICAgIH0pOworICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmlzU2hhcmVkVHlwZWRBcnJheVZpZXcpXS5pbml0TGF0ZXIo
W10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQu
c2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihp
bml0Lm93bmVyKSwgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1NoYXJl
ZFR5cGVkQXJyYXlWaWV3KSk7CisgICAgICAgIH0pOwogICAgIG1fbGlua1RpbWVDb25zdGFudHNb
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmlzRGV0YWNoZWQpXS5pbml0
TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKICAgICAgICAgICAg
IGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmpl
Y3QqPihpbml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJ
c0RldGFjaGVkKSk7CiAgICAgICAgIH0pOworICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnR5cGVkQXJyYXlEZWZhdWx0Q29tcGFy
YXRvcildLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewor
ICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxK
U0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQ
cml2YXRlRnVuY0RlZmF1bHRDb21wYXJhdG9yKSk7CisgICAgICAgIH0pOwogICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnR5cGVk
QXJyYXlTdWJhcnJheUNyZWF0ZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlND
ZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGlu
aXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKSk7CiAgICAgICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlLmNwcAppbmRleCA0NzAzMDI5ZTZjYzI4OTNkMWQ0YjBjYzU1NmVlNWZk
NTkxYjAxYWU0Li5iZmI3MzI5ZDYwYzliMWU0MGUwZjIyMzk3ZjkyZmM3ZjBkNjMxOTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXlJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTg1LDYgKzg2LDE2IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldywgKEpT
R2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odmFsdWUuaXND
ZWxsKCkgJiYgaXNUeXBlZFZpZXcodmFsdWUuYXNDZWxsKCktPmNsYXNzSW5mbyhnbG9iYWxPYmpl
Y3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNTaGFyZWRUeXBlZEFycmF5Vmll
dywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K3sKKyAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
KyAgICBpZiAoIXZhbHVlLmlzQ2VsbCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihmYWxzZSkpOworICAgIGlmICghaXNUeXBlZFZpZXcodmFsdWUuYXNDZWxsKCkt
PmNsYXNzSW5mbyhnbG9iYWxPYmplY3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+
KHZhbHVlKS0+aXNTaGFyZWQoKSkpOworfQorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9
IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CkBAIC05Miw2ICsxMDMsNTggQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc0RldGFjaGVk
LCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihhcmd1bWVudCktPmlzRGV0YWNoZWQoKSkpOwog
fQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0Rl
ZmF1bHRDb21wYXJhdG9yLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJv
dG90eXBlLnNvcnQKKworICAgIEpTVmFsdWUgeCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoMCk7CisgICAgSlNWYWx1ZSB5ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsK
KworICAgIGlmICh4LmlzTnVtYmVyKCkpIHsKKyAgICAgICAgQVNTRVJUKHkuaXNOdW1iZXIoKSk7
CisgICAgICAgIGlmICh4LmlzSW50MzIoKSAmJiB5LmlzSW50MzIoKSkgeworICAgICAgICAgICAg
aW50MzJfdCB4SW50MzIgPSB4LmFzSW50MzIoKTsKKyAgICAgICAgICAgIGludDMyX3QgeUludDMy
ID0geS5hc0ludDMyKCk7CisgICAgICAgICAgICBpZiAoeEludDMyIDwgeUludDMyKQorICAgICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICAgICAg
ICAgIGlmICh4SW50MzIgPiB5SW50MzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcigxKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKDApKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSB4RG91YmxlID0geC5h
c051bWJlcigpOworICAgICAgICBkb3VibGUgeURvdWJsZSA9IHkuYXNOdW1iZXIoKTsKKyAgICAg
ICAgaWYgKHN0ZDo6aXNuYW4oeERvdWJsZSkgJiYgc3RkOjppc25hbih5RG91YmxlKSkKKyAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworICAgICAgICBpZiAo
c3RkOjppc25hbih4RG91YmxlKSkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoMSkpOworICAgICAgICBpZiAoc3RkOjppc25hbih5RG91YmxlKSkKKyAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICAgICAgaWYgKHhE
b3VibGUgPCB5RG91YmxlKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigtMSkpOworICAgICAgICBpZiAoeERvdWJsZSA+IHlEb3VibGUpCisgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAgICAgaWYgKHhEb3VibGUg
PT0gMCAmJiB5RG91YmxlID09IDApIHsKKyAgICAgICAgICAgIGlmIChzdGQ6OnNpZ25iaXQoeERv
dWJsZSkgJiYgIXN0ZDo6c2lnbmJpdCh5RG91YmxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgICAgICBpZiAoIXN0ZDo6c2ln
bmJpdCh4RG91YmxlKSAmJiBzdGQ6OnNpZ25iaXQoeURvdWJsZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxKSk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgfQorICAgIEFTU0VSVCh4
LmlzQmlnSW50KCkgJiYgeS5pc0JpZ0ludCgpKTsKKyAgICBzd2l0Y2ggKGNvbXBhcmVCaWdJbnQo
eCwgeSkpIHsKKyAgICBjYXNlIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpFcXVhbDoKKyAg
ICBjYXNlIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpVbmRlZmluZWQ6CisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworICAgIGNhc2UgSlNCaWdJbnQ6OkNv
bXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOgorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKDEpKTsKKyAgICBjYXNlIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpM
ZXNzVGhhbjoKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtMSkpOwor
ICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKTsKK30KKwogSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCmluZGV4IDZj
ZDdiMmEwZDRkYzFjOWIyZTk1MzdiZjI3YWFhMDgyN2Q3OGI3NTAuLmQzNTMwZmY2ZDYxNGVmZTBk
MjIxMjdjMzhmOTY5MGMyY2NmMjBlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAgLTUyLDcgKzUy
LDkgQEAgY2xhc3MgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKIH07CiAKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNTaGFyZWRUeXBlZEFycmF5Vmlldyk7CiBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc0RldGFj
aGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y0RlZmF1bHRDb21wYXJhdG9yKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY1NvcnQpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggMjI1ZTIyNDgzZDA5YWMy
MDNiY2JlZmU1Y2JhOGQ3NTJmMGFmZTA3Mi4uZjg0ZGVlYzFjMjZkNTJjZjczMzE5MDRhMjAxZDhl
ODRkNWEzNGE1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oCkBAIC00OTQsNiArNDk0LDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VKSVRD
YWdlKCk7CiAgICAgdihCb29sLCB1c2VXZWFrUmVmcywgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRo
ZSBXZWFrUmVmIGNvbnN0cnVjdG9yLiIpIFwKICAgICB2KEJvb2wsIHVzZUludGxEYXRlVGltZUZv
cm1hdERheVBlcmlvZCwgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBJbnRsLkRhdGVUaW1lRm9y
bWF0IGRheVBlcmlvZCBmZWF0dXJlLiIpIFwKICAgICB2KEJvb2wsIHVzZUF0TWV0aG9kLCBmYWxz
ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBhdCgpIG1ldGhvZCBvbiBBcnJheSBhbmQgJVR5cGVkQXJy
YXklLiIpIFwKKyAgICB2KEJvb2wsIHVzZVNoYXJlZEFycmF5QnVmZmVyLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VBcnJheUFsbG9jYXRpb25Qcm9maWxpbmcsIHRy
dWUsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwgdXNlIG91ciBub3JtYWwgYXJyYXkgYWxsb2Nh
dGlvbiBwcm9maWxpbmcuIElmIGZhbHNlLCB0aGUgYWxsb2NhdGlvbiBwcm9maWxlIHdpbGwgYWx3
YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRlZC4iKSBcCiAgICAgdihCb29sLCBmb3JjZVBvbHlQcm90
bywgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGNyZWF0ZV90aGlzIHdpbGwgYWx3YXlzIGNyZWF0
ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkgcHJvdG8gc3RydWN0dXJlLiIpIFwKICAgICB2KEJvb2ws
IGZvcmNlTWluaVZNTW9kZSwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGl0IHdpbGwgZm9yY2Ug
bWluaSBWTSBtb2RlIG9uLiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAppbmRleCAwMjVmNGFi
OTAwOWY2Nzg4NGFjNmVhMDU2ZDM0YjFjZjQ4ZjNmMmZhLi5lZjE2MjYyMTc2YWZmMDU0MjkxNzZm
ZTdkNWM4MDI0ZTAzNTlkOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC0zMyw3ICsz
MywxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6
OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkgeyB9CitTaW1wbGVUeXBlZEFycmF5Q29udHJv
bGxlcjo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoYm9vbCBhbGxvd0F0b21pY3NXYWl0KQor
ICAgIDogbV9hbGxvd0F0b21pY3NXYWl0KGFsbG93QXRvbWljc1dhaXQpCit7Cit9CisKIFNpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyOjp+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSB7IH0K
IAogSlNBcnJheUJ1ZmZlciogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OnRvSlMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEFycmF5QnVmZmVyKiBuYXRpdmUpCkBAIC01NSw3ICs1OSw3IEBAIHZvaWQgU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OnJlZ2lzdGVyV3JhcHBlcihKU0dsb2JhbE9iamVjdCosIEFycmF5
QnVmZmVyKiBuCiAKIGJvb2wgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OmlzQXRvbWljc1dh
aXRBbGxvd2VkT25DdXJyZW50VGhyZWFkKCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gbV9hbGxvd0F0b21pY3NXYWl0OwogfQogCiBib29sIFNpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IGY3ZTUw
YmZiM2QxMGM3MjI3MTU4YmJhYWYxNGRhNTk5NGRhOTdmZTIuLjIxOWNhZjQyNjMwZTE3MzVhMTVj
OTE0ZGRhNWNkYWEzNGRiNjgzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIg
ZmluYWwgOiBwdWJsaWMgVHlwZWRBcnJheUNvbnRyb2xsZXIgewogcHVibGljOgotICAgIFNpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIoYm9vbCBhbGxvd0F0b21pY3NXYWl0ID0gdHJ1ZSk7CiAgICAgflNp
bXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkgZmluYWw7CiAgICAgCiAgICAgSlNBcnJheUJ1ZmZl
ciogdG9KUyhKU0dsb2JhbE9iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSBm
aW5hbDsKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIg
ZmluYWwgOiBwdWJsaWMgVHlwZWRBcnJheUNvbnRyb2xsZXIgewogICAgIH07CiAKICAgICBKU0Fy
cmF5QnVmZmVyT3duZXIgbV9vd25lcjsKKyAgICBib29sIG1fYWxsb3dBdG9taWNzV2FpdCB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmlu
ZGV4IDc2YWQyMzU5YTFhN2IzNGVmODk5ZDQyYjJlYzZlNGQxMGIzZGMyOGQuLjA1YmQ2ODBjYWU2
NzUyNGFmNDlkZTU5NzZkOTg2OTQwODUxYjA5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApA
QCAtODMwLDcgKzgzMCw3IEBACiAjZW5kaWYKIAogLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZl
cnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwotI2Rl
ZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCisjZGVmaW5lIEVOQUJMRV9TSEFSRURf
QVJSQVlfQlVGRkVSIDEKIAogCiAjaWYgKChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExB
WVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8
fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYjU3NWE0MWZmY2I1NWM2MTM4YmZiYTFlNDk0NjNkYTAyZmU2MjEwMi4uYzlh
MzVjMzFkNjlkNjY1YTFkOGFiZDU0NjkxYjBkODE4MmU0MzI2MSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEx
LTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5h
YmxlIFNoYXJlZEFycmF5QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdDI2Mi9SdW5uZXIucG06CisgICAgICAgIChnZXRG
ZWF0dXJlRmxhZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgIChtYWluKToKKwogMjAyMC0xMS0wNCAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBB
ZGQgY2hlY2tvdXQgY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1
bm5lci5wbSBiL1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9SdW5uZXIucG0KaW5kZXggZTIzNmQwNThh
MTQ4ZjlhYjAzZGM1ZDdlODYxYzJiOWQzMjM4ZmNkOC4uZmIxZTQ1N2U4ZTk5ZTRiMDUyNjhiNDFh
MzlmOWE5ZGFiYzY3MzJlNyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5l
ci5wbQorKysgYi9Ub29scy9TY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtCkBAIC03MDMsNiArNzAz
LDEwIEBAIHN1YiBnZXRGZWF0dXJlRmxhZ3MgewogICAgICAgICB9CiAgICAgfQogCisgICAgaWYg
KGdyZXAgJF8gZXEgJ0NhbkJsb2NrSXNGYWxzZScsIEB7JGRhdGEtPntmbGFnc319KSB7CisgICAg
ICAgICRmZWF0dXJlRmxhZ3MgLj0gJyAtLWNhbi1ibG9jay1pcy1mYWxzZSc7CisgICAgfQorCiAg
ICAgcmV0dXJuICRmZWF0dXJlRmxhZ3M7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDNjOGMwYWM3
MTZjNWRlNTE0Y2I3YzUxZDhjYTU2ZmQ5ODYzYTMzNzQuLmE1YjRhNGUwNzJlZTgzM2E2ODU0NzY1
MGI0Yzg2YjY2NjA2YmJkZDUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtODgsNiArODgsOCBAQCBkZWYg
bWFpbihhcmd2LCBzdGRvdXQsIHN0ZGVycik6CiAgICAgICAgIHN0YWNrU2l6ZUluQnl0ZXMgPSBp
bnQoMS41ICogMTAyNCAqIDEwMjQpCiAgICAgICAgIG9wdGlvbnMuYWRkaXRpb25hbF9lbnZfdmFy
LmFwcGVuZCgnSlNDX21heFBlclRocmVhZFN0YWNrVXNhZ2U9JyArIHN0cihzdGFja1NpemVJbkJ5
dGVzKSkKICAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsX2Vudl92YXIuYXBwZW5kKCdfX1hQQ19K
U0NfbWF4UGVyVGhyZWFkU3RhY2tVc2FnZT0nICsgc3RyKHN0YWNrU2l6ZUluQnl0ZXMpKQorICAg
ICAgICBvcHRpb25zLmFkZGl0aW9uYWxfZW52X3Zhci5hcHBlbmQoJ0pTQ191c2VTaGFyZWRBcnJh
eUJ1ZmZlcj0xJykKKyAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsX2Vudl92YXIuYXBwZW5kKCdf
X1hQQ19KU0NfdXNlU2hhcmVkQXJyYXlCdWZmZXI9MScpCiAgICAgICAgIHJ1bl9kZXRhaWxzID0g
cnVuKHBvcnQsIG9wdGlvbnMsIGFyZ3MsIHN0ZGVycikKICAgICAgICAgaWYgcnVuX2RldGFpbHMu
ZXhpdF9jb2RlICE9IC0xIGFuZCBydW5fZGV0YWlscy5za2lwcGVkX2FsbF90ZXN0czoKICAgICAg
ICAgICAgIHJldHVybiBydW5fZGV0YWlscy5leGl0X2NvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMjI4YWFkZmQ5YWQ4
MGI5OTI0ZWNhNWVjODY0NTFmODZhZTI2ODFkLi4wNGY5NzQ1NGFlZGI5ZGE1OGJkOTY5NmRjNjJj
M2YwM2UwOWJiNDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTEtMDUgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZS1lbmFibGUgU2hhcmVkQXJy
YXlCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTExLTA1ICBK
aWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBE
ZXRlcm1pbmUgYW4gQUFHVUlEIGZvciB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvcnMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDc2ODE0Zjg0YzcwNzE4NmI3NDEwMTJmMWMwYjM2
NmQzMzQ3ZDBhOTcuLjE0MWUyMWM1ZTA5OGQ5NWJlNTYzODVjYTg4YzY4MGM1MGE4ZTNlMTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTA1
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxl
IFNoYXJlZEFycmF5QnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vz
c2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFs
aXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5h
bnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBlY3Rl
ZC50eHQ6CisKIDIwMjAtMTEtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICB3aW5kb3cuZXZlbnQgbWF5IGdldCBzZXQgb24gd3JvbmcgZ2xvYmFsIHdoZW4gZGlz
cGF0Y2hpbmcgYW4gZXZlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1v
ZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVx
dWlyZXMtZmFpbHVyZS5odHRwcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nl
c3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1h
bGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggNzI1MWRi
YzBkMTRkN2E5ZjliMzBiMTA2ZmQ3YWFmOTY1MGI3ZTNlMC4uY2ZhM2UwMTc1YTI3YmVhMTA1NjY4
ZDNjZThlNjI2OTcwMmFlMTgxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9y
ZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSwzIEBACiAKLUZBSUwgW1tDYW5CbG9ja11dIGluIGEgV2luZG93IGFzc2VydF90aHJvd3Nf
anM6IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgQXRvbWljcy53YWl0KHRhLCAwLCAwLCAxMCk7Ci0g
IH0iIHRocmV3IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEF0
b21pY3MiICgiUmVmZXJlbmNlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAi
ZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9y
IikKK1BBU1MgW1tDYW5CbG9ja11dIGluIGEgV2luZG93CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3Njcmlw
dGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1h
Z2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9u
LXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0
cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGE0M2RmOGNmYWEyZGNlMjUx
ZmE4ZTc0NmEyNTQzOWZjNWFiYmVlN2EuLjQ0YjJlY2Y1MjJiN2Y2MjIxYTZhOGUxNzhmMGExMmM4
ZTk2ZWY3MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50
ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFp
bHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFn
ZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4gYSBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IHsK
LSAgICBBdG9taWNzLndhaXQodGEsIDAsIDAsIDEwKTsKLSAgfSIgdGhyZXcgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQXRvbWljcyIgKCJSZWZlcmVuY2VFcnJv
ciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQorUEFTUyBbW0NhbkJsb2NrXV0g
aW4gYSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2Ny
aXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGViZGQyOGU3OWNmYmNiZGJmNDRiNDlmMDM3MGI2ODVlOWIyYjNlNmUuLjBiOTg2
MGNjYzUzNDRmNTJkZDc4NDUyMTBiOWQ0MjNjMjVjMTQyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3Njcmlw
dGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1h
Z2VudC1mb3JtYWxpc20vcmVxdWlyZXMtc3VjY2Vzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2Vi
YXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhl
LWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgW1tDYW5CbG9ja11dIGluIGEgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgQ2FuJ3QgZmluZCB2YXJpYWJsZTogQXRvbWljcworRkFJ
TCBbW0NhbkJsb2NrXV0gaW4gYSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBUeXBlZCBhcnJh
eSBmb3Igd2FpdC9ub3RpZnkgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS9tZW1vcnkvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvY29uc3RydWN0
b3IuYW55LWV4cGVjdGVkLnR4dAppbmRleCAwNDdkNWM1NmMxNGIwZTRkYmM0YzhmMGYwNTcyMzU1
MzZlZmU1N2UzLi45YTI0OTA1N2Y0OTgyNjQ5NDZmYmJlNjMxOGFmNzMyYmFkNWE3ZGVlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25z
dHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CkBAIC0yNSw1ICsyNSw1IEBAIEZBSUwgT3JkZXIgb2Yg
ZXZhbHVhdGlvbiBmb3IgZGVzY3JpcHRvciAod2l0aCBzaGFyZWQpIGFzc2VydF9hcnJheV9lcXVh
bHM6IGxlbmd0CiBQQVNTIFplcm8gaW5pdGlhbAogUEFTUyBOb24temVybyBpbml0aWFsCiBGQUlM
IFN0cmF5IGFyZ3VtZW50IFdlYkFzc2VtYmx5Lk1lbW9yeSBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50Ci1GQUlMIFNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ2J1ZmZlclR5cGUucHJvdG90eXBlJykKK0ZBSUwgU2hhcmVkIG1lbW9yeSBhc3Nl
cnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgYnVmZmVyIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBT
aGFyZWRBcnJheUJ1ZmZlcl0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEFycmF5QnVmZmVyXSIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9t
ZW1vcnkvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggMDQ3ZDVjNTZj
MTRiMGU0ZGJjNGM4ZjBmMDU3MjM1NTM2ZWZlNTdlMy4uOWEyNDkwNTdmNDk4MjY0OTQ2ZmJiZTYz
MThhZjczMmJhZDVhN2RlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0yNSw1ICsyNSw1IEBAIEZBSUwgT3JkZXIgb2YgZXZhbHVhdGlvbiBmb3IgZGVzY3Jp
cHRvciAod2l0aCBzaGFyZWQpIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0CiBQQVNTIFplcm8g
aW5pdGlhbAogUEFTUyBOb24temVybyBpbml0aWFsCiBGQUlMIFN0cmF5IGFyZ3VtZW50IFdlYkFz
c2VtYmx5Lk1lbW9yeSBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50Ci1GQUlMIFNoYXJlZCBt
ZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2J1ZmZlclR5cGUu
cHJvdG90eXBlJykKK0ZBSUwgU2hhcmVkIG1lbW9yeSBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUg
b2YgYnVmZmVyIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl0iIGJ1
dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEFycmF5QnVmZmVyXSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdl
X2Jsb2NrLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggMGFjYTkwNzM2MzU3M2Y2NzUzZmEzNmRiNmQzYmVjMDlmNjM4MDM1My4uMGMyNWM0
MTA3ZTY0MThiNmFmN2FkZTEyYWI4ZDY3MzcyNGM3OGY3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Js
b2NrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvcG9zdE1lc3NhZ2VfYmxvY2suaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHBvc3RNZXNzYWdlIGFuZCBibG9jayBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBTaGFyZWRBcnJheUJ1ZmZlcgorUEFTUyBwb3N0TWVzc2FnZSBhbmQgYmxv
Y2sKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQu
dHh0CmluZGV4IDMxZThhOTFiZjY1MDFhOGU3YTZjOGY3ZjQ4MmM5MGRkNjU5NGQyNTguLmM5YWQ3
ZThiMDYwZTc1M2Q1MDk1MDIwODJlYWQwYTI3OTQ3ZDU4NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTk1LDggKzk1LDEyIEBA
IFBBU1MgICBBbmFseXNlck5vZGUuZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKG51bGwpIHRocmV3IFR5
cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhCiBQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5dGVGcmVx
dWVuY3lEYXRhKG51bGwpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRv
IEFuYWx5c2VyTm9kZS5nZXRCeXRlRnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFVpbnQ4QXJyYXkiLgogUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRh
KG51bGwpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2Vy
Tm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRhIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQz
MkFycmF5Ii4KIFBBU1MgICBBbmFseXNlck5vZGUuZ2V0Qnl0ZVRpbWVEb21haW5EYXRhKG51bGwp
IHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5n
ZXRCeXRlVGltZURvbWFpbkRhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5Ii4K
K1BBU1MgICBBbmFseXNlck5vZGUuZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKFNoYXJlZEFycmF5QnVm
ZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5
c2VyTm9kZS5nZXRGbG9hdEZyZXF1ZW5jeURhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9h
dDMyQXJyYXkiLgorUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRCeXRlRnJlcXVlbmN5RGF0YShTaGFy
ZWRBcnJheUJ1ZmZlciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAxICgnYXJyYXkn
KSB0byBBbmFseXNlck5vZGUuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBVaW50OEFycmF5Ii4KK1BBU1MgICBBbmFseXNlck5vZGUuZ2V0RmxvYXRUaW1lRG9tYWlu
RGF0YShTaGFyZWRBcnJheUJ1ZmZlciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAx
ICgnYXJyYXknKSB0byBBbmFseXNlck5vZGUuZ2V0RmxvYXRUaW1lRG9tYWluRGF0YSBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIEZsb2F0MzJBcnJheSIuCitQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5
dGVUaW1lRG9tYWluRGF0YShTaGFyZWRBcnJheUJ1ZmZlciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6
ICJBcmd1bWVudCAxICgnYXJyYXknKSB0byBBbmFseXNlck5vZGUuZ2V0Qnl0ZVRpbWVEb21haW5E
YXRhIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVWludDhBcnJheSIuCiBQQVNTICAgQXVkaW9CdWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMikgdGhyZXcgSW5kZXhTaXplRXJyb3I6ICJJbmRleCBtdXN0IGJl
IGxlc3MgdGhhbiBudW1iZXIgb2YgY2hhbm5lbHMuIi4KLVBBU1MgPCBbY3JlYXRlQW5hbHlzZXJd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDI0IGFzc2VydGlvbnMpCitQQVNTIDwgW2Ny
ZWF0ZUFuYWx5c2VyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyOCBhc3NlcnRpb25z
KQogUEFTUyA+IFtJbml0IHRlc3Qgbm9kZXNdIENyZWF0ZSB0ZXN0IG5vZGVzIGZvciB0aGUgZm9s
bG93aW5nIHRlc3RzCiBQQVNTICAgbm9kZSA9IGNvbnRleHQuY3JlYXRlR2FpbigpIGRpZCBub3Qg
dGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyAgIG5vZGUyID0gY29udGV4dC5jcmVhdGVHYWluKCkg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCkBAIC0xMzEsNyArMTM1LDEwIEBAIFBBU1MgICBu
b2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKG5ldyBGbG9hdDMyQXJyYXkoMSksIG5ldyBGbG9hdDMy
QXJyYXkoMSksIG5ldyBGCiBQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZShudWxsLCBu
ZXcgRmxvYXQzMkFycmF5KDEpLCBuZXcgRmxvYXQzMkFycmF5KDEpKSB0aHJldyBUeXBlRXJyb3I6
ICJBcmd1bWVudCAxICgnZnJlcXVlbmN5SHonKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZyZXF1
ZW5jeVJlc3BvbnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KIFBBU1Mg
ICBub2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKG5ldyBGbG9hdDMyQXJyYXkoMSksIG51bGwsIG5l
dyBGbG9hdDMyQXJyYXkoMSkpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDIgKCdtYWdSZXNw
b25zZScpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgogUEFTUyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVz
cG9uc2UobmV3IEZsb2F0MzJBcnJheSgxKSwgbmV3IEZsb2F0MzJBcnJheSgxKSwgbnVsbCkgdGhy
ZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMyAoJ3BoYXNlUmVzcG9uc2UnKSB0byBCaXF1YWRGaWx0
ZXJOb2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQz
MkFycmF5Ii4KLVBBU1MgPCBbYmlxdWFkXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0
IGFzc2VydGlvbnMpCitQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZShzaGFyZWRfdmll
dywgbm9uc2hhcmVkX3ZpZXcsIG5vbnNoYXJlZF92aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1
bWVudCAxICgnZnJlcXVlbmN5SHonKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZyZXF1ZW5jeVJl
c3BvbnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BBU1MgICBub2Rl
LmdldEZyZXF1ZW5jeVJlc3BvbnNlKG5vbnNoYXJlZF92aWV3LCBzaGFyZWRfdmlldywgbm9uc2hh
cmVkX3ZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDIgKCdtYWdSZXNwb25zZScpIHRv
IEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBGbG9hdDMyQXJyYXkiLgorUEFTUyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2Uobm9u
c2hhcmVkX3ZpZXcsIG5vbnNoYXJlZF92aWV3LCBzaGFyZWRfdmlldykgdGhyZXcgVHlwZUVycm9y
OiAiQXJndW1lbnQgMyAoJ3BoYXNlUmVzcG9uc2UnKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZy
ZXF1ZW5jeVJlc3BvbnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BB
U1MgPCBbYmlxdWFkXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA3IGFzc2VydGlvbnMp
CiBQQVNTID4gW29mZmxpbmUtYXVkaW8tY29udGV4dF0gc3VwcG9ydHMgMzIgY2hhbm5lbHMKIFBB
U1MgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgzMiwgMTAwLCBjb250ZXh0LnNhbXBsZVJhdGUp
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyA8IFtvZmZsaW5lLWF1ZGlvLWNvbnRl
eHRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmE0ZjlhNjli
N2Y4MzNlYzZjYmFjOTI5ZWUzNzJmNDc1NDcyNmM4Yy4uOTcxY2Q3MTdiZDI1OTE2MzI0Y2VlYWI3
ZDc5MmUzZTU3ZTk3OWRjMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0xMS0wNSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1
ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEy
MDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIHRlc3RzIHRvIGFsaWduIHRvIHRoZSBsYXRlc3Qgc3BlYy4KKworICAgICAgICAqIHN0cmVz
cy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanM6CisgICAgICAgIChzaG91bGRTdWNjZWVkKToKKyAg
ICAgICAgKGlkeC5vZi5zdHJpbmdfYXBwZWFyZWRfaGVyZS5hLm9mLmFycmF5cy5tLm9mLmF0b21p
Y3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUuYS5vZi5hcnJheXMubS5vZi5hdG9t
aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIuanM6Cisg
ICAgICAgIChzaG91bGRTdWNjZWVkKToKKyAgICAgICAgKFN5bWJvbCk6CisgICAgICAgICogc3Ry
ZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qczoKKyAgICAgICAgKiBzdHJlc3MvYXRvbWlj
cy1hZGQtdWludDMyLmpzOgorICAgICAgICAqIHN0cmVzcy9hdG9taWNzLWtub3duLWludC11c2Uu
anM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3MtbmVnLXplcm8uanM6CisgICAgICAgICogc3Ry
ZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzOgorICAgICAgICAqIHN0cmVzcy9sYXJzLXNhYi13
b3JrZXJzLmpzOgorICAgICAgICAocmVzb3VyY2VzKToKKyAgICAgICAgKG5vdGlmeSk6CisgICAg
ICAgICh3YWtlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNzA0NzMuanM6
CisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzOgorICAgICAgICAqIHN0cmVzcy9z
aGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlp
bmcuanM6IEFkZGVkLgorICAgICAgICAoMjYyLmFnZW50LndhaXRVbnRpbCk6CisgICAgICAgICgy
NjIuYWdlbnQuc3RhcnQuMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QpOgorICAgICAgICAqIHRl
c3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoK
KwogMjAyMC0xMS0wMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYmFjayB0aGUgcmVtb3ZlZCBhc3NlcnRpb24gZnJvbSByMjY5MzM4IGFuZCBhZGQgYSB0
ZXN0CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanMKaW5kZXggN2IyYzI3ZmY5
ZWExM2YxMmM1ZjRlNDk3MWI2YjY4YmNjZjQwMDEzYS4uNzhlMWRhYjcyZDA1YzI1N2RlZmJhYzdj
N2MyMmI5MTZhZmI5NTBmNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlC
dWZmZXItb3B0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9wdC5q
cwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgZHYgPSBuZXcgRGF0YVZpZXcobmV3IFNo
YXJlZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGk4YSA9IG5ldyBJbnQ4QXJyYXkobmV3IFNoYXJl
ZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGkxNmEgPSBuZXcgSW50MTZBcnJheShuZXcgU2hhcmVk
QXJyYXlCdWZmZXIoMTI4KSk7CkBAIC0xMDQsNiArMTAzLDExIEBAIGZ1bmN0aW9uIHNob3VsZEZh
aWwoZiwgbmFtZSkKICAgICB0aHJvdyBuZXcgRXJyb3IoZiArICIgc3VjY2VlZGVkISIpOwogfQog
CitmdW5jdGlvbiBzaG91bGRTdWNjZWVkKGYpCit7CisgICAgZigpOworfQorCiBmb3IgKHZhciBi
YWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwgU3ltYm9sKCksIHt9LCAi
aGVsbG8iLCBkdiwgdThjYSwgZjMyYSwgZjY0YV0pIHsKICAgICBzaG91bGRGYWlsKCgpID0+IGdl
bmVyaWNBdG9taWNzLmdldCgiYWRkIikoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKICAgICBzaG91
bGRGYWlsKCgpID0+IGdlbmVyaWNBdG9taWNzLmdldCgiYW5kIikoYmFkLCAwLCAwKSwgVHlwZUVy
cm9yKTsKQEAgLTExNiw3ICsxMjAsNyBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAg
ICAgc2hvdWxkRmFpbCgoKSA9PiBnZW5lcmljQXRvbWljcy5nZXQoInhvciIpKGJhZCwgMCwgMCks
IFR5cGVFcnJvcik7CiB9CiAKLWZvciAodmFyIGlkeCBvZiBbLTEsIC0xMDAwMDAwMDAwMDAwLCAx
MDAwMCwgMTAwMDAwMDAwMDAwMDAsICJoZWxsbyJdKSB7Citmb3IgKHZhciBpZHggb2YgWy0xLCAt
MTAwMDAwMDAwMDAwMCwgMTAwMDAwMDAwMDAwMDAsIDEwMDAwXSkgewogICAgIGZvciAodmFyIGEg
b2YgYXJyYXlzKSB7CiAgICAgICAgIGZvciAodmFyIG0gb2YgW2F0b21pY3MuZ2V0KGEpLCBnZW5l
cmljQXRvbWljc10pIHsKICAgICAgICAgICAgIHNob3VsZEZhaWwoKCkgPT4gbS5nZXQoImFkZCIp
KGEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwpAQCAtMTMyLDMgKzEzNiwxOSBAQCBmdW5jdGlvbiBz
aG91bGRGYWlsKGYsIG5hbWUpCiAgICAgfQogfQogCitmb3IgKHZhciBpZHggb2YgWyJoZWxsbyJd
KSB7CisgICAgZm9yICh2YXIgYSBvZiBhcnJheXMpIHsKKyAgICAgICAgZm9yICh2YXIgbSBvZiBb
YXRvbWljcy5nZXQoYSksIGdlbmVyaWNBdG9taWNzXSkgeworICAgICAgICAgICAgc2hvdWxkU3Vj
Y2VlZCgoKSA9PiBtLmdldCgiYWRkIikoYSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRT
dWNjZWVkKCgpID0+IG0uZ2V0KCJhbmQiKShhLCBpZHgsIDApKTsKKyAgICAgICAgICAgIHNob3Vs
ZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImNvbXBhcmVFeGNoYW5nZSIpKGEsIGlkeCwgMCwgMCkpOwor
ICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgiZXhjaGFuZ2UiKShhLCBpZHgs
IDApKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImxvYWQiKShhLCBp
ZHgpKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoIm9yIikoYSwgaWR4
LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJzdG9yZSIpKGEs
IGlkeCwgMCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgic3ViIiko
YSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJ4b3Ii
KShhLCBpZHgsIDApKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJh
eUJ1ZmZlci5qcwppbmRleCAzYjI2OWE3NjUwZmFhYjdkOWMxMGI3NTc1ZTBlNGVlY2QwZDZjZmIz
Li4xZDcyN2NjYmUyOGZkNWFiM2JlODA3ODMyMDg3ZmE2OGIxNTk1YzdlIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9T
aGFyZWRBcnJheUJ1ZmZlci5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiAvLyBUaGlzIGlz
IGEgYmFzaWMgdGVzdCBvZiBTaGFyZWRBcnJheUJ1ZmZlciBBUEkgYXMgd2UgdW5kZXJzdGFuZCBp
dC4KIAogaWYgKFNoYXJlZEFycmF5QnVmZmVyID09IEFycmF5QnVmZmVyKQpAQCAtMzUsMTEgKzM0
LDExIEBAIGZ1bmN0aW9uIGNoZWNrQXRvbWljcyhuYW1lLCBjb3VudCkKIGNoZWNrQXRvbWljcygi
ZXhjaGFuZ2UiLCAzKTsKIGNoZWNrQXRvbWljcygiaXNMb2NrRnJlZSIsIDEpOwogY2hlY2tBdG9t
aWNzKCJsb2FkIiwgMik7CitjaGVja0F0b21pY3MoIm5vdGlmeSIsIDMpOwogY2hlY2tBdG9taWNz
KCJvciIsIDMpOwogY2hlY2tBdG9taWNzKCJzdG9yZSIsIDMpOwogY2hlY2tBdG9taWNzKCJzdWIi
LCAzKTsKIGNoZWNrQXRvbWljcygid2FpdCIsIDQpOwotY2hlY2tBdG9taWNzKCJ3YWtlIiwgMyk7
CiBjaGVja0F0b21pY3MoInhvciIsIDMpOwogCiAvLyBUaGVzZSBzaG91bGQgYWxsIHN1Y2NlZWQu
CkBAIC02Niw2ICs2NSwxMSBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAgICAgdGhy
b3cgbmV3IEVycm9yKGYgKyAiIHN1Y2NlZWRlZCEiKTsKIH0KIAorZnVuY3Rpb24gc2hvdWxkU3Vj
Y2VlZChmKQoreworICAgIGYoKTsKK30KKwogZm9yIChiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFs
c2UsIHRydWUsIDEsIDAuNSwgU3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgdThjYSwgZjMyYSwg
ZjY0YV0pIHsKICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3MuYWRkKGJhZCwgMCwgMCksIFR5
cGVFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLmFuZChiYWQsIDAsIDApLCBU
eXBlRXJyb3IpOwpAQCAtNzksMTEgKzgzLDExIEBAIGZ1bmN0aW9uIHNob3VsZEZhaWwoZiwgbmFt
ZSkKIH0KIAogZm9yIChiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwg
U3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgaThhLCBpMTZhLCB1OGEsIHU4Y2EsIHUxNmEsIHUz
MmEsIGYzMmEsIGY2NGFdKSB7CisgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLm5vdGlmeShi
YWQsIDAsIDApLCBUeXBlRXJyb3IpOwogICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy53YWl0
KGJhZCwgMCwgMCksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndh
a2UoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKIH0KIAotZm9yIChpZHggb2YgWy0xLCAtMTAwMDAw
MDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwLCAiaGVsbG8iXSkgeworZm9yIChpZHggb2Yg
Wy0xLCAtMTAwMDAwMDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwXSkgewogICAgIGZvciAo
YSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUzMmFdKSB7CiAgICAgICAgIHNob3Vs
ZEZhaWwoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CiAgICAgICAg
IHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CkBA
IC05NSw4ICs5OSwyNCBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAgICAgICAgIHNo
b3VsZEZhaWwoKCkgPT4gQXRvbWljcy5zdWIoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CiAgICAg
ICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy54b3IoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7
CiAgICAgfQorICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5ub3RpZnkoaTMyYSwgaWR4LCAw
KSwgUmFuZ2VFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndhaXQoaTMyYSwg
aWR4LCAwKSwgUmFuZ2VFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndha2Uo
aTMyYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7Cit9CisKK2ZvciAoaWR4IG9mIFsiaGVsbG8iXSkg
eworICAgIGZvciAoYSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUzMmFdKSB7Cisg
ICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAwKSk7CisgICAg
ICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSk7CisgICAgICAg
IHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5jb21wYXJlRXhjaGFuZ2UoYSwgaWR4LCAwLCAw
KSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5leGNoYW5nZShhLCBpZHgs
IDApKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmxvYWQoYSwgaWR4KSk7
CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5vcihhLCBpZHgsIDApKTsKKyAg
ICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLnN0b3JlKGEsIGlkeCwgMCkpOworICAg
ICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Muc3ViKGEsIGlkeCwgMCkpOworICAgICAg
ICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3MueG9yKGEsIGlkeCwgMCkpOworICAgIH0KKyAg
ICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Mubm90aWZ5KGkzMmEsIGlkeCwgMCkpOworICAg
IHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy53YWl0KGkzMmEsIGlkeCwgMCwgMSkpOwogfQog
CiBmdW5jdGlvbiBydW5BdG9taWMoYXJyYXksIGluZGV4LCBpbml0LCBuYW1lLCBhcmdzLCBleHBl
Y3RlZFJlc3VsdCwgZXhwZWN0ZWRPdXRjb21lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVy
LWJ5dGUtbGVuZ3RoLmpzCmluZGV4IDc4YTcyZjkyMzJjZDA4ZTc1ZWEyNzk0MjE0ZDdjMmY2OTEz
MmVlNWYuLjY0MzM1YzE0OWUyMzRiOTQ5NWZhYTIxZDJhMjExMjNiMzU2OTJhNzcgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMKQEAgLTEsNCArMSwzIEBACi0v
L0Agc2tpcAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKIHsKICAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mt
YWRkLXVpbnQzMi5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVpbnQzMi5qcwppbmRl
eCA5YjAwOGUxNTQzOTIzMWYwMzI3Y2ZiYTE5NWRlMzQ2ZTNlNDlhYTZjLi5kOTdkZGRiNDY5NzFj
MDFiNjcyN2VhNjVkNzQ2NGYzOTVhYTg0MWI4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9h
dG9taWNzLWFkZC11aW50MzIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1hZGQtdWlu
dDMyLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBzYWIgPSBuZXcgU2hhcmVkQXJy
YXlCdWZmZXIoNCk7CiB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShzYWIpOwogdmFyIHJlc3VsdCA9
IEF0b21pY3MuYWRkKGEsIDAsIDQwMDAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvYXRvbWljcy1rbm93bi1pbnQtdXNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1rbm93
bi1pbnQtdXNlLmpzCmluZGV4IDgwNzMxZWE3YzgyNGE3ZDJjZmZjNjI5M2E5ZWY1YzI3YjQxZTJl
YjIuLjRlMGE5NmMxNTQzYzJmMDU0YmJkMjRlNjliZmVkNzlmOWIxYzgzNDcgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mta25vd24taW50LXVzZS5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9hdG9taWNzLWtub3duLWludC11c2UuanMKQEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAog
Ly8gQnJlYWsgdHlwZSBpbmZlcmVuY2UuCiB2YXIgbyA9IHtmOiA0Mi41fTsKIApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0
b21pY3MtbmVnLXplcm8uanMKaW5kZXggMGE4ZTUyYzdiZmE4OTIzZDcyNzExNTFhOTE0YjJhZmZi
NWIzMDAzYS4uZjk3YWJmYjU0MzU1ZGUyYjkwNGEwYTZmZWY0ZWVlMGM5YWNhMTgxZiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9hdG9taWNzLW5lZy16ZXJvLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBz
YWIgPSBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoNCk7CiB2YXIgYSA9IG5ldyBJbnQzMkFycmF5KHNh
Yik7CiBBdG9taWNzLmFkZChhLCAtMCwgMSk7IC8vIFRoaXMgc2hvdWxkIG5vdCB0aHJvdy4KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzIGIvSlNUZXN0
cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKaW5kZXggNzg3YTFmZDI0MzE1YTMwYmI4
MDQ0NTg2ZmFiNGVjNzAxNGU4ZGRlMS4uMDgyNTYzZjM0MTBiNzNlYmQ3ZGI2YTMzY2Y1ZTU4MDEw
YjcxNWE0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4u
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanMKQEAgLTEsNCAr
MSwzIEBACi0vL0Agc2tpcAogdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcigxKTsKIHZh
ciBhID0gbmV3IEludDhBcnJheShzYWIpOwogdmFyIHJlc3VsdCA9IEF0b21pY3Muc3RvcmUoYSwg
MCwgMTAwMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNhYi13b3JrZXJzLmpz
IGIvSlNUZXN0cy9zdHJlc3MvbGFycy1zYWItd29ya2Vycy5qcwppbmRleCBiYWU0MDBmNzIwODRl
YTI1ZjMxZTRiYzQ0NDRjYzMwNTMyY2QyZDMyLi43ZDFjYWRkMzJhZjQ4ZmMwZDQ1Yzk1M2M1MWI4
NTRiZjcyZTgyOGJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNhYi13b3JrZXJz
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xhcnMtc2FiLXdvcmtlcnMuanMKQEAgLTEsNSArMSwz
IEBACi0vL0Agc2tpcAotCiB2YXIgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKDEwMCAqIDQp
OwogCiB2YXIgbWVtb3J5ID0gbmV3IEludDMyQXJyYXkoc2FiKTsKQEAgLTE0LDcgKzEyLDcgQEAg
ZnVuY3Rpb24gc3RhcnRXb3JrZXIoY29kZSkKIH0KIAogcmVzb3VyY2VzID0gYAotZnVuY3Rpb24g
d2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCB3YWtlQ29uZGl0aW9uKQorZnVuY3Rp
b24gd2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCBub3RpZnlDb25kaXRpb24pCiB7
CiAgICAgd2hpbGUgKG1lbW9yeVtpbmRleF0gPT0gd2FpdENvbmRpdGlvbikgewogICAgICAgICB2
YXIgcmVzdWx0ID0gQXRvbWljcy53YWl0KG1lbW9yeSwgaW5kZXgsIHdhaXRDb25kaXRpb24pOwpA
QCAtMjgsMjMgKzI2LDIzIEBAIGZ1bmN0aW9uIHdhaXQobWVtb3J5LCBpbmRleCwgd2FpdENvbmRp
dGlvbiwgd2FrZUNvbmRpdGlvbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIHZhciB2YWx1ZSA9IG1lbW9yeVtpbmRleF07Ci0gICAgICAgIGlmICh2YWx1ZSAhPSB3YWtl
Q29uZGl0aW9uKSB7CisgICAgICAgIGlmICh2YWx1ZSAhPSBub3RpZnlDb25kaXRpb24pIHsKICAg
ICAgICAgICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjogd2FpdCByZXR1cm5lZCBub3QtZXF1YWwg
YnV0IHRoZSBtZW1vcnkgaGFzIGEgYmFkIHZhbHVlOiAiICsgdmFsdWUpOwogICAgICAgICAgICAg
JC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgdmFyIHZhbHVl
ID0gbWVtb3J5W2luZGV4XTsKLSAgICBpZiAodmFsdWUgIT0gd2FrZUNvbmRpdGlvbikgeworICAg
IGlmICh2YWx1ZSAhPSBub3RpZnlDb25kaXRpb24pIHsKICAgICAgICAgJC5hZ2VudC5yZXBvcnQo
IkVycm9yOiBkb25lIHdhaXRpbmcgYnV0IHRoZSBtZW1vcnkgaGFzIGEgYmFkIHZhbHVlOiAiICsg
dmFsdWUpOwogICAgICAgICAkLmFnZW50LnJlcG9ydCgiZXJyb3IiKTsKICAgICB9CiB9CiAKLWZ1
bmN0aW9uIHdha2UobWVtb3J5LCBpbmRleCkKK2Z1bmN0aW9uIG5vdGlmeShtZW1vcnksIGluZGV4
KQogewotICAgIHZhciByZXN1bHQgPSBBdG9taWNzLndha2UobWVtb3J5LCBpbmRleCwgMSk7Cisg
ICAgdmFyIHJlc3VsdCA9IEF0b21pY3Mubm90aWZ5KG1lbW9yeSwgaW5kZXgsIDEpOwogICAgIGlm
IChyZXN1bHQgIT0gMCAmJiByZXN1bHQgIT0gMSkgewotICAgICAgICAkLmFnZW50LnJlcG9ydCgi
RXJyb3I6IGJhZCByZXN1bHQgZnJvbSB3YWtlOiAiICsgcmVzdWx0KTsKKyAgICAgICAgJC5hZ2Vu
dC5yZXBvcnQoIkVycm9yOiBiYWQgcmVzdWx0IGZyb20gbm90aWZ5OiAiICsgcmVzdWx0KTsKICAg
ICAgICAgJC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgfQogfQpAQCAtNjYsNyArNjQsNyBA
QCBmdW5jdGlvbiB3YWtlKG1lbW9yeSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIx
OiBJdCBzdGFydGVkISIpOwogICAgICAgICAKICAgICAgICAgbWVtb3J5W3Nob3VsZEdvSWR4XSA9
IDE7Ci0gICAgICAgIHdha2UobWVtb3J5LCBzaG91bGRHb0lkeCk7CisgICAgICAgIG5vdGlmeSht
ZW1vcnksIHNob3VsZEdvSWR4KTsKICAgICAgICAgCiAgICAgICAgIHdhaXQobWVtb3J5LCBkaWRF
bmRJZHgsIDAsIDEpOwogICAgICAgICAKQEAgLTg4LDEyICs4NiwxMiBAQCBmdW5jdGlvbiB3YWtl
KG1lbW9yeSwgaW5kZXgpCiAgICAgICAgICQuYWdlbnQucmVwb3J0KCIyOiBNZW1vcnk6ICIgKyBt
ZW1vcnkpOwogICAgICAgICAKICAgICAgICAgQXRvbWljcy5zdG9yZShtZW1vcnksIGRpZFN0YXJ0
SWR4LCAxKTsKLSAgICAgICAgd2FrZShtZW1vcnksIGRpZFN0YXJ0SWR4KTsKKyAgICAgICAgbm90
aWZ5KG1lbW9yeSwgZGlkU3RhcnRJZHgpOwogICAgICAgICAKICAgICAgICAgd2FpdChtZW1vcnks
IHNob3VsZEdvSWR4LCAwLCAxKTsKICAgICAgICAgCiAgICAgICAgIEF0b21pY3Muc3RvcmUobWVt
b3J5LCBkaWRFbmRJZHgsIDEpOwotICAgICAgICB3YWtlKG1lbW9yeSwgZGlkRW5kSWR4LCAxKTsK
KyAgICAgICAgbm90aWZ5KG1lbW9yeSwgZGlkRW5kSWR4LCAxKTsKICAgICAgICAgCiAgICAgICAg
ICQuYWdlbnQucmVwb3J0KCIyOiBNZW1vcnk6ICIgKyBtZW1vcnkpOwogICAgICAgICAkLmFnZW50
LnJlcG9ydCgiZG9uZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNzA0
NzMuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwppbmRleCBhYTlhYWJhOGRj
NWUxMDI5Y2Q3NzFkMzhhN2ExZjdiNDZiYWVjMjQwLi4xNmUxNmQ3NDRiMmExYTVkYTI2YTU5ZTNi
N2IwNGUzOTM5OTRiZDAyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3
My5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcwpAQCAtMSw0ICsxLDMg
QEAKLS8vQCBza2lwCiB2YXIgaGVhcCA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcig0MDk2KTsKIHZh
ciBVaW50OEFycmF5VmlldyA9IG5ldyBVaW50OEFycmF5KGhlYXApOwogCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4OTMxNy5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3Mt
MTg5MzE3LmpzCmluZGV4IDhlNjhlZTI0MWU3YTc3ZTA3YTZhYWNjMDdhYTRmZjA0MjY3N2I4Y2Iu
LjRiOGYyODdmODYxYWU4YThmM2NhZmI0NzRkN2VkNWJlZWUzMjIzN2MgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jl
c3MtMTg5MzE3LmpzCkBAIC05Miw3ICs5Miw3IEBACiAgICAgICAgICJBdG9taWNzLnN0b3JlIiwK
ICAgICAgICAgIkF0b21pY3Muc3ViIiwKICAgICAgICAgIkF0b21pY3Mud2FpdCIsCi0gICAgICAg
ICJBdG9taWNzLndha2UiLAorICAgICAgICAiQXRvbWljcy5ub3RpZnkiLAogICAgICAgICAiQXRv
bWljcy54b3IiLAogICAgIF0pOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhcmVk
LWFycmF5LWJ1ZmZlci1zb3J0LXdoaWxlLWRpZmZlcmVudC10aHJlYWQtaXMtbW9kaWZ5aW5nLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvc2hhcmVkLWFycmF5LWJ1ZmZlci1zb3J0LXdoaWxlLWRpZmZlcmVu
dC10aHJlYWQtaXMtbW9kaWZ5aW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YWNlOTBlYzllOGQxODkxMThm
YTY1YmQ1ZjdjN2NkZWRiNWIzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9z
aGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlp
bmcuanMKQEAgLTAsMCArMSwzOCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0td2F0Y2hkb2c9MTAwMCIs
ICItLXdhdGNoZG9nLWV4Y2VwdGlvbi1vayIpCisKKyQyNjIuYWdlbnQud2FpdFVudGlsID0gZnVu
Y3Rpb24odHlwZWRBcnJheSwgaW5kZXgsIGV4cGVjdGVkKSB7CisgIHZhciBhZ2VudHMgPSAwOwor
ICB3aGlsZSAoKGFnZW50cyA9IEF0b21pY3MubG9hZCh0eXBlZEFycmF5LCBpbmRleCkpICE9PSBl
eHBlY3RlZCkgeworICAgIC8qIG5vdGhpbmcgKi8KKyAgfQorfTsKKworY29uc3QgSVRFUkFUSU9O
UyA9IDEwMDAwOworY29uc3QgUlVOTklORyA9IDA7CisKK2NvbnN0IGkzMmEgPSBuZXcgSW50MzJB
cnJheSgKKyAgbmV3IFNoYXJlZEFycmF5QnVmZmVyKEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1F
TlQgKiAxMDAwMDApCispOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNl
aXZlQnJvYWRjYXN0KGZ1bmN0aW9uKHNhYikgeworICAgIGNvbnN0IGkzMmEgPSBuZXcgSW50MzJB
cnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGkzMmEsICR7UlVOTklOR30sIDEpOworCisgICAg
Zm9yICh2YXIgaiA9IDE7IGogPCAke0lURVJBVElPTlN9OyArK2opIHsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpMzJhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpMzJhW2ldID0g
ajsKKyAgICAgICAgfQorICAgIH0KKworICAgICQyNjIuYWdlbnQucmVwb3J0KCJkb25lIik7Cisg
ICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQuYnJvYWRj
YXN0KGkzMmEuYnVmZmVyKTsKKyQyNjIuYWdlbnQud2FpdFVudGlsKGkzMmEsIFJVTk5JTkcsIDEp
OworCitmb3IgKHZhciBpID0gMDsgaSA8IElURVJBVElPTlM7ICsraSkgeworICAgIGkzMmEuc29y
dCgpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IGI5MTQ5NjdiZGI3MDUwNDJiODhmYjlmNTgwYmJk
YWQ5ZGQ4Y2UzYjEuLjJhYTljYmJiZWQzMDNmOTE3M2NmZWMwMmI5ZGQ2OTQ3Y2IzNjk0ZjMgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvY29uZmlnLnlhbWwKQEAgLTYsMTAgKzYsMTAgQEAgZmxhZ3M6CiAgIGNsYXNzLWZpZWxkcy1w
dWJsaWM6IHVzZVB1YmxpY0NsYXNzRmllbGRzCiAgIGNsYXNzLWZpZWxkcy1wcml2YXRlOiB1c2VQ
cml2YXRlQ2xhc3NGaWVsZHMKICAgSW50bC5EYXRlVGltZUZvcm1hdC1kYXlQZXJpb2Q6IHVzZUlu
dGxEYXRlVGltZUZvcm1hdERheVBlcmlvZAorICBTaGFyZWRBcnJheUJ1ZmZlcjogdXNlU2hhcmVk
QXJyYXlCdWZmZXIKKyAgQXRvbWljczogdXNlU2hhcmVkQXJyYXlCdWZmZXIKIHNraXA6CiAgIGZl
YXR1cmVzOgotICAgIC0gU2hhcmVkQXJyYXlCdWZmZXIKLSAgICAtIEF0b21pY3MKICAgICAtIEF0
b21pY3Mud2FpdEFzeW5jCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0OTMxCiAgICAgLSByZWdleHAtbG9va2JlaGluZApAQCAtODIsNiArODIsMTkgQEAg
c2tpcDoKICAgICAtIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJu
YWxzL1NldC9CaWdJbnQKICAgICAtIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rv
cnMvb2YvQmlnSW50CiAKKyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3MvYWRkL2JpZ2ludAor
ICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9hbmQvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL2NvbXBhcmVFeGNoYW5nZS9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5z
L0F0b21pY3MvZXhjaGFuZ2UvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2lz
TG9ja0ZyZWUvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2xvYWQvYmlnaW50
CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL25vdGlmeS9iaWdpbnQKKyAgICAtIHRlc3Qv
YnVpbHQtaW5zL0F0b21pY3Mvb3IvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNz
L3N0b3JlL2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9zdWIvYmlnaW50Cisg
ICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXQvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3hvci9iaWdpbnQKKwogICAgICMgcmVxdWlyZXMgSUNVIEFQSXMgaW1wbGVt
ZW50YXRpb24KICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM4MjIKICAgICAtIHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUvZm9ybWF0
UmFuZ2VUb1BhcnRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggYzU3YmFhNGY1YjUy
MWRhZDc4YTJhYjViNWQwMGViYzk5MjliYmRkOC4uOTU0NDMxNGJiMGVhNGVmNjFkY2NjYWNiZWYz
YTNmYmZkNjc5NzhjOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtODQ3LDYgKzg0
NywzMCBAQCB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvdS1sYXN0aW5kZXgt
YWR2LmpzOgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3F1YW50aWZpZXItaW50ZWdlci1saW1pdC5q
czoKICAgZGVmYXVsdDogJ1N5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjog
bnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyJwogICBzdHJpY3QgbW9kZTogJ1N5bnRh
eEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7
fSBxdWFudGlmaWVyJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBl
L3NsaWNlL3NwZWNpZXMtY29uc3RydWN0b3ItaXMtbm90LW9iamVjdC5qczoKKyAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yYCB2YWx1ZSBpcyBudWxsIEV4cGVjdGVkIGEgVHlw
ZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwor
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yYCB2YWx1ZSBpcyBudWxs
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBl
L3NsaWNlL3NwZWNpZXMtaXMtbm90LWNvbnN0cnVjdG9yLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBgY29uc3RydWN0b3JbU3ltYm9sLnNwZWNpZXNdYCB2YWx1ZSBpcyBPYmplY3QgRXhw
ZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93
biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JbU3lt
Ym9sLnNwZWNpZXNdYCB2YWx1ZSBpcyBPYmplY3QgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlu
cy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1pcy1ub3Qtb2JqZWN0
LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JbU3ltYm9sLnNwZWNp
ZXNdYCB2YWx1ZSBpcyBCb29sZWFuIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogYGNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUgaXMgQm9vbGVhbiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9z
bGljZS9zcGVjaWVzLXJldHVybnMtbGFyZ2VyLWFycmF5YnVmZmVyLmpzOgorICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqs4wrssIMKrMTDCuykgdG8gYmUgdHJ1
ZScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzjC
uywgwqsxMMK7KSB0byBiZSB0cnVlJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIv
cHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1ub3QtYXJyYXlidWZmZXIuanM6CisgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZlci9w
cm90b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1cm5zLXNhbWUtYXJyYXlidWZmZXIuanM6CisgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZlci9w
cm90b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1cm5zLXNtYWxsZXItYXJyYXlidWZmZXIuanM6Cisg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZl
ci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl3Cuywgwqt1bmRl
ZmluZWTCuykgdG8gYmUgdHJ1ZScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdwrssIMKrdW5kZWZpbmVk
wrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9ldmVy
eS9jYWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
YSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413398</attachid>
            <date>2020-11-05 20:59:55 -0800</date>
            <delta_ts>2020-11-06 00:17:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212069-20201105205954.patch</filename>
            <type>text/plain</type>
            <size>103272</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTlkOWQzOGNhMDJiYjdmYTA3Y2MxMGI5YWZmYzdjMjIxMWJmZGE0Li5hNmNhYjA1MGY4MDdmNmZm
NTJmNmFiMzcyYzUyZGI4MjM3NDVlNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0xMS0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBmb3IgSlNDIHNoZWxsIGFu
ZCBUZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJldml2ZXMgU2hhcmVkQXJyYXlCdWZmZXIgYW5kIEF0b21pY3MgYW5kIGFs
aWduaW5nIHRoZW0gdG8gdGhlIGxhdGVzdCBzcGVjLgorCisgICAgICAgIDEuIFNoYXJlZEFycmF5
QnVmZmVyJ3Mgc29ydCBzaG91bGQgYmUgZG9uZSBpbiBKUyBzaWRlLiBDKysgc29ydCBpcyBub3Qg
c2FmZSBmb3IgU2hhcmVkQXJyYXlCdWZmZXIgc2luY2UgdGhlIGJ1ZmZlcgorICAgICAgICAgICBj
YW4gYmUgbW9kaWZpZWQgYnkgZGlmZmVyZW50IHRocmVhZHMgd2hpbGUgc29ydGluZy4KKyAgICAg
ICAgMi4gQXRvbWljcy53YWl0IHNob3VsZCBiZSByZW5hbWVkIHRvIEF0b21pY3Mubm90aWZ5Lgor
ICAgICAgICAzLiBBdG9taWNzIG9wZXJhdGlvbiBzaG91bGQgYmUgVmFyQXJncyBpbiBERkcgYmVj
YXVzZSBERkdTU0FMb3dlcmluZ1BoYXNlIGFzc3VtZXMgdGhhdCB0aGV5IGFyZSBWYXJBcmdzIGFu
ZCB0aGV5IGNhbgorICAgICAgICAgICBoYXZlIGFub3RoZXIgYXJnIGZvciBDaGVja0luQm91bmRz
IGRlcGVuZGVuY3kuCisgICAgICAgIDUuIEZvciB0ZXN0MjYyLCBKU0Mgc2hlbGwgc2hvdWxkIHN1
cHBvcnQgIi0tY2FuLWJsb2NrLWlzLWZhbHNlIiBmbGFnLiBJZiBpdCBpcyB0cnVlLCB0aGUgbWFp
biB0aHJlYWQncyBbW0NhbkJsb2NrXV0gYmVjb21lcyBmYWxzZS4KKyAgICAgICAgICAgVGhpcyBt
ZWFucyB0aGF0IGBBdG9taWNzLndhaXRgIGNhbm5vdCBiZSB1c2VkLgorCisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3Rv
dHlwZS5qczoKKyAgICAgICAgKHNvcnQpOgorICAgICAgICAqIGJ5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xv
YmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptdXN0R2VuZXJhdGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc1ZhckFyZ3MgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6Om11c3RHZW5lcmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNTQUxvd2VyaW5nUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBdG9taWNzSXNMb2NrRnJlZSk6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKHByaW50VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAo
Q29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKHJ1bkpTQyk6CisgICAgICAg
ICogcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QXRvbWljc09iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNp
Yy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgorICAgICAgICAqIHJ1bnRpbWUv
SW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6YXJyYXlCdWZmZXJTbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5
QnVmZmVyQnl0ZUxlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvSW50ZWdlck9ySW5m
aW5pdHkgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jUmV2ZXJzZSk6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1By
aXZhdGVGdW5jU29ydCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKToKKyAgICAgICAg
KEpTQzo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OmlzQXRvbWljc1dhaXRBbGxvd2VkT25D
dXJyZW50VGhyZWFkKToKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmg6CisKIDIwMjAtMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIEFSTTY0RQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkZTA5Yjhl
MDcyZjYwOWUxOGRjZjQ5OGIyYzM4ZmI2MWYxZWVkNjlkLi5iNGQwNmRkMTZlNDc4MmQwYTI3OGIz
MThmNDliY2IyZTIzNGY1MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTA1ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJl
ZEFycmF5QnVmZmVyIGZvciBKU0Mgc2hlbGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisK
IDIwMjAtMTEtMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0dQVSBQcm9jZXNzXSBNb3ZlIHRoZSBpbnRlcm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZy
b20gV2ViUGFnZSB0byBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggOWI5YjY0ODgyMGFjMWMyZTU5ODk3ZmFkODNmZGZmZTM3
YzdhODVmNS4uNjM5ZTMzYWVlMTBkNTlkMjI0ZDU5NWM0MzYwMzczN2YwZjIwYTg5OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMTE3LDcg
KzExNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCiAg
ICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oaXNUeXBlZEFycmF5Vmll
dykgXAorICAgIG1hY3JvKGlzU2hhcmVkVHlwZWRBcnJheVZpZXcpIFwKICAgICBtYWNybyhpc0Rl
dGFjaGVkKSBcCisgICAgbWFjcm8odHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yKSBcCiAgICAg
bWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0
aW9uKSBcCiAgICAgbWFjcm8oaW5zdGFuY2VPZikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwppbmRleCAyYWRmY2YzOWNl
MGRjMjM1MGZmMWRhNzVkNjkzMWYwMTY3YzJmMGZlLi41YmZjNjA4MGNkYTJlODI5MjdlNWVmZjBi
YmNiNTRiMGUyMWY3NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwpAQCAtMjM4LDkgKzIzOCwxMyBAQCBmdW5jdGlv
biBzb3J0KGNvbXBhcmF0b3IpCiAgICAgaWYgKGxlbmd0aCA8IDIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChjb21wYXJhdG9yICE9PSBAdW5kZWZpbmVkKQorICAgIC8vIHR5cGVkQXJyYXlT
b3J0IGlzIG5vdCBzYWZlIHdoZW4gdGhlIG90aGVyIHRocmVhZCBpcyBtb2RpZnlpbmcgY29udGVu
dC4gU28gaWYgfHRoaXN8IGlzIFNoYXJlZEFycmF5QnVmZmVyLAorICAgIC8vIHVzZSBKUy1pbXBs
ZW1lbnRlZCBzb3J0aW5nLgorICAgIGlmIChjb21wYXJhdG9yICE9PSBAdW5kZWZpbmVkIHx8IEBp
c1NoYXJlZFR5cGVkQXJyYXlWaWV3KHRoaXMpKSB7CisgICAgICAgIGlmIChjb21wYXJhdG9yID09
PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgY29tcGFyYXRvciA9IEB0eXBlZEFycmF5RGVmYXVs
dENvbXBhcmF0b3I7CiAgICAgICAgIEB0eXBlZEFycmF5TWVyZ2VTb3J0KHRoaXMsIGxlbmd0aCwg
Y29tcGFyYXRvcik7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBAdHlwZWRBcnJheVNv
cnQodGhpcyk7CiAKICAgICByZXR1cm4gdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCmluZGV4IDkyM2ViYjk4YTZmYjdiZmZkZGY3
NjExYTAyYTI2MTQwMjQ5YzY4N2QuLmQzNTlhMzg1NjA2NjI4MDZkMDgwMDRhZjYwYmVmYjc3ZmZj
N2U1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGlt
ZUNvbnN0YW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1l
Q29uc3RhbnQuaApAQCAtNTMsNyArNTMsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2
KHR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBudWxscHRyKSBcCiAgICAgdih0eXBl
ZEFycmF5U29ydCwgbnVsbHB0cikgXAogICAgIHYoaXNUeXBlZEFycmF5VmlldywgbnVsbHB0cikg
XAorICAgIHYoaXNTaGFyZWRUeXBlZEFycmF5VmlldywgbnVsbHB0cikgXAogICAgIHYoaXNEZXRh
Y2hlZCwgbnVsbHB0cikgXAorICAgIHYodHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yLCBudWxs
cHRyKSBcCiAgICAgdih0eXBlZEFycmF5U3ViYXJyYXlDcmVhdGUsIG51bGxwdHIpIFwKICAgICB2
KGlzQm91bmRGdW5jdGlvbiwgbnVsbHB0cikgXAogICAgIHYoaGFzSW5zdGFuY2VCb3VuZEZ1bmN0
aW9uLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMjM3YzRlMjg3MTE2NDk1NmQw
ZTRhZDAzYmNhZmIwYzhlNjA3MjhjZi4uZTM5MGViNjFkNTNjOGI3YTE4YmJlNWQzYWZlYmYxMDY3
MzE3OTcyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtODI2LDcgKzgyNiw3IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIEF0b21pY3NJc0xvY2tG
cmVlOiB7Ci0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJVc2Up
CisgICAgICAgIGlmIChtX2dyYXBoLmNoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSAhPSBJbnQzMlVz
ZSkKICAgICAgICAgICAgIGNsb2JiZXJXb3JsZCgpOwogICAgICAgICBzZXROb25DZWxsVHlwZUZv
ck5vZGUobm9kZSwgU3BlY0Jvb2xJbnQzMik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBmZDg3MTRhMjUw
OTIwOGY5NWExNTVhZmI1N2U2ZDQzMjhjMGE2MWU5Li4zOTcxMmQ3MTE5ZGQxZTZmOWIwMmIzN2I4
OTQzZmMyYmNmZmI2NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcApAQCAtMjcxNywyNCArMjcxNywxOSBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgT3BlcmFuZCByZXN1bHQsIElu
dHJpbnNpYwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSA8IDEgKyBudW1BcmdzKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKG1faW5saW5lU3RhY2tUb3At
Pm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEluZGV4aW5nVHlw
ZSkKKyAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDb25zdGFudENhY2hlKQorICAgICAgICAgICAg
ICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZENhY2hlKQorICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3At
Pm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5z
ZXJ0Q2hlY2tzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFZlY3RvcjxOb2RlKiwgMz4g
YXJnczsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1BcmdzOyArK2kp
Ci0gICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3Vt
ZW50SW5jbHVkaW5nVGhpcygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIE5vZGUqIHJlc3VsdE5vZGU7Ci0gICAgICAgICAgICBpZiAobnVtQXJncyAr
IDEgPD0gMykgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdzLnNpemUoKSA8IDMpCi0gICAg
ICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHJl
c3VsdE5vZGUgPSBhZGRUb0dyYXBoKG9wLCBPcEluZm8oQXJyYXlNb2RlKEFycmF5OjpTZWxlY3RV
c2luZ1ByZWRpY3Rpb25zLCBhY3Rpb24pLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBh
cmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChOb2RlKiBub2RlIDogYXJncykKLSAgICAgICAgICAgICAgICAgICAgYWRk
VmFyQXJnQ2hpbGQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0
cik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0Tm9kZSA9IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJn
LCBvcCwgT3BJbmZvKEFycmF5TW9kZShBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9ucywgYWN0
aW9uKS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSk7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50
SW5jbHVkaW5nVGhpcygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7CisgICAgICAgICAgICBhZGRW
YXJBcmdDaGlsZChudWxscHRyKTsgLy8gRm9yIHN0b3JhZ2UgZWRnZS4KKyAgICAgICAgICAgIE5v
ZGUqIHJlc3VsdE5vZGUgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbyhBcnJh
eU1vZGUoQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnMsIGFjdGlvbikuYXNXb3JkKCkpLCBP
cEluZm8ocHJlZGljdGlvbikpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBzZXRSZXN1bHQo
cmVzdWx0Tm9kZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggOGY2ODdhOGJlYWExMTJiZmI2ZGNmNTdmMjcy
YTc0OWFlNzU1YTdlNS4uZjA5ZGZjZDRlNTQwODNlZWU4NDMyMDMwYTFiYzA5MjE0ZmI3ZDY5MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI1Myw4ICsy
NTMsOCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBS
ZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICByZXR1cm47CiAKICAgICBj
YXNlIEF0b21pY3NJc0xvY2tGcmVlOgotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpID09IEludDMyVXNlKQotICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CisgICAg
ICAgIGlmIChncmFwaC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gSW50MzJVc2UpCisgICAg
ICAgICAgICBkZWYoUHVyZVZhbHVlKGdyYXBoLCBub2RlKSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIGNsb2JiZXJUb3AoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggZWIwNDY1MzQ4M2MxMGMyYzJhMGUwNGUy
MGNhNzY5MGYzMjFmZjEzMC4uNzRlZWUxMjAzNDkwOWVlYzdhNWMwNWNhNjM2YzQ3NmRkMmI0ZTVh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0x
MzY1LDggKzEzNjUsOCBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6Ci0gICAg
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpCi0gICAg
ICAgICAgICAgICAgZml4SW50T3JCb29sZWFuRWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBpZiAobV9ncmFwaC5jaGlsZChub2RlLCAwKS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkK
KyAgICAgICAgICAgICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKG1fZ3JhcGguY2hpbGQobm9kZSwg
MCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJh
eVB1c2g6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggODk3Yjk5OWU5NTQ0
ZTI5Y2YwMDZmOWQ4NmM0MjdlNTY5MzNkNWRmZS4uYWJlYjE3YmRjMGYzMTM0NmRhMjMzNzcyNDI5
MDZlNzY1YzgwYTA4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTUwNCwx
MCArNTA0LDE1IEBAIHN0cnVjdCBOb2RlIHsKICAgICB2b2lkIGNvbnZlcnRUb0lkZW50aXR5KCk7
CiAgICAgdm9pZCBjb252ZXJ0VG9JZGVudGl0eU9uKE5vZGUqKTsKIAotICAgIGJvb2wgbXVzdEdl
bmVyYXRlKCkKKyAgICBib29sIG11c3RHZW5lcmF0ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9mbGFncyAmIE5vZGVNdXN0R2VuZXJhdGU7CiAgICAgfQorCisgICAgYm9vbCBoYXNW
YXJBcmdzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZUhhc1Zh
ckFyZ3M7CisgICAgfQogICAgIAogICAgIGJvb2wgaXNDb25zdGFudCgpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDFjMjZjM2MxNTE0YWFjMjI2NThk
MzA0NGJhOGQ0YWIyZTQ3ZDkxZTkuLjc4M2FjOGFlNzQwM2QzMmRhZjUzZTc3YTQyODllZDgxNDk1
ODExNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTI5OSw4
ICsyOTksOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQXRv
bWljc0FuZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdz
KSBcCiAgICAgbWFjcm8oQXRvbWljc0NvbXBhcmVFeGNoYW5nZSwgTm9kZVJlc3VsdEpTIHwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc0V4Y2hh
bmdlLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwK
LSAgICBtYWNybyhBdG9taWNzSXNMb2NrRnJlZSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKLSAgICBt
YWNybyhBdG9taWNzTG9hZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAg
IG1hY3JvKEF0b21pY3NJc0xvY2tGcmVlLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVIYXNWYXJB
cmdzKSBcCisgICAgbWFjcm8oQXRvbWljc0xvYWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKEF0b21pY3NPciwgTm9kZVJlc3Vs
dEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRv
bWljc1N0b3JlLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFy
Z3MpIFwKICAgICBtYWNybyhBdG9taWNzU3ViLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCmluZGV4IDZiNjViNjc3YjFkZGUyYWEwNjVmNTNhMTJl
NDVjYzRjYzcyN2Q3ODguLjYzODZiOGEzNjJlMTNlMmEwYTgwMDFhZjM4M2FlNGZlZjhjYzliY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNl
LmNwcApAQCAtNzUsNyArNzUsMTIgQEAgY2xhc3MgU1NBTG93ZXJpbmdQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgIGNhc2UgQXRvbWljc09yOgogICAgICAgICBjYXNlIEF0b21pY3NTdG9y
ZToKICAgICAgICAgY2FzZSBBdG9taWNzU3ViOgotICAgICAgICBjYXNlIEF0b21pY3NYb3I6Cisg
ICAgICAgIGNhc2UgQXRvbWljc1hvcjogeworICAgICAgICAgICAgdW5zaWduZWQgbnVtRXh0cmFB
cmdzID0gbnVtRXh0cmFBdG9taWNzQXJncyhtX25vZGUtPm9wKCkpOworICAgICAgICAgICAgbG93
ZXJCb3VuZHNDaGVjayhtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9u
b2RlLCAxKSwgbV9ncmFwaC5jaGlsZChtX25vZGUsIDIgKyBudW1FeHRyYUFyZ3MpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBIYXNJbmRleGVkUHJvcGVy
dHk6CiAgICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKG1fZ3JhcGguY2hpbGQobV9ub2RlLCAw
KSwgbV9ncmFwaC5jaGlsZChtX25vZGUsIDEpLCBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMikpOwog
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA2NDY0N2VjMjQyMDc2ZjUwY2Y3ZWY5MmZlMWIzMWQ5
M2I1OGJjYWQzLi41Y2RlZWIzODU4OTRkNzg5YWE2YWMxNDI3OTBlYzJmYzQ2ZTQ4YzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
QEAgLTM0MzAsOCArMzQzMCw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6IHsKLSAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSAhPSBJbnQzMlVzZSkgewotICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgIEVkZ2UgY2hpbGQxID0gbV9ncmFwaC5jaGlsZChub2RlLCAwKTsKKyAgICAgICAgaWYgKGNo
aWxkMS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IG9wZXJhbmQodGhpcywgY2hpbGQxKTsKICAgICAgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0g
b3BlcmFuZC5ncHIoKTsKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAg
ICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CkBAIC0zNDQyLDcgKzM0NDMsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCi0gICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcGVyYW5k
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9w
ZXJhbmQodGhpcywgY2hpbGQxKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
ICAgICAgICAgR1BSUmVnIG9wZXJhbmRHUFIgPSBvcGVyYW5kLmdwcigpOwogICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGRkNThiYjU0NmExYzYzZGNjY2VmNzYwMTQwYTlk
MDRjYjVhYTc4YjEuLjBmZTJkMGYwMTM5OGNlNmJiNTUyOGQ0N2EzZjViZTgzOTcxNWIxNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTQy
NzcsMTIgKzQyNzcsMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBpbGVB
dG9taWNzSXNMb2NrRnJlZSgpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwotICAg
ICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKLSAgICAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJl
ZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgp
KSkpOworICAgICAgICBFZGdlIGNoaWxkMSA9IG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKTsKKyAg
ICAgICAgaWYgKGNoaWxkMS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKKyAgICAgICAgICAgIHNl
dEpTVmFsdWUodm1DYWxsKEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgd2Vha1Bv
aW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShjaGlsZDEpKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIExWYWx1ZSBieXRlcyA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgYnl0ZXMgPSBsb3dJbnQzMihj
aGlsZDEpOwogICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgdHJ1ZUNhc2UgPSBtX291dC5u
ZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBmYWxzZUNhc2UgPSBtX291dC5uZXdCbG9j
aygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBmZTdlN2ZjMGNmYzEzN2NmZGNkYWUzOTAzNjFi
NWQ3MGNkNDQzYzJmLi44MTY3Njg1NzViY2ExNDkxNjgyZWRlZTEzZGQ1MWQxMDA3YWZmZGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVy
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJSZWxlYXNlSGVhcEFjY2Vzc1Njb3BlLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdQcm9maWxlci5oIgorI2luY2x1ZGUgIlNpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIlN1cGVyU2FtcGxlci5oIgpAQCAtNDI0LDYgKzQyNSw3IEBAIGNs
YXNzIENvbW1hbmRMaW5lIHsKICAgICBib29sIG1fZHVtcE1lbW9yeUZvb3RwcmludCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2R1bXBTYW1wbGluZ1Byb2ZpbGVyRGF0YSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2VuYWJsZVJlbW90ZURlYnVnZ2luZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhbkJs
b2NrSXNGYWxzZSB7IGZhbHNlIH07CiAKICAgICB2b2lkIHBhcnNlQXJndW1lbnRzKGludCwgY2hh
cioqKTsKIH07CkBAIC0zMDk3LDYgKzMwOTksNyBAQCBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJp
bnRVc2FnZVN0YXRlbWVudChib29sIGhlbHAgPSBmYWxzZSkKICAgICBmcHJpbnRmKHN0ZGVyciwg
IiAgLS1kdW1wT3B0aW9ucyAgICAgICAgICAgICAgRHVtcHMgYWxsIG5vbi1kZWZhdWx0IEpTQyBW
TSBvcHRpb25zIGJlZm9yZSBjb250aW51aW5nXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
LS08anNjIFZNIG9wdGlvbj49PHZhbHVlPiAgU2V0cyB0aGUgc3BlY2lmaWVkIEpTQyBWTSBvcHRp
b25cbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtLWRlc3Ryb3ktdm0gICAgICAgICAgICAg
ICBEZXN0cm95IFZNIGJlZm9yZSBleGl0aW5nXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
LS1jYW4tYmxvY2staXMtZmFsc2UgICAgICAgTWFrZSBtYWluIHRocmVhZCdzIFtbQ2FuQmxvY2td
XSBmYWxzZVxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogICAgIGZwcmludGYoc3Rk
ZXJyLCAiRmlsZXMgd2l0aCBhIC5tanMgZXh0ZW5zaW9uIHdpbGwgYWx3YXlzIGJlIGV2YWx1YXRl
ZCBhcyBtb2R1bGVzLlxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwpAQCAtMzExOCw2
ICszMTIxLDcgQEAgdm9pZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQogewogICAgIE9wdGlvbnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBz
Y29wZTsKICAgICBPcHRpb25zOjppbml0aWFsaXplKCk7CisgICAgT3B0aW9uczo6dXNlU2hhcmVk
QXJyYXlCdWZmZXIoKSA9IHRydWU7CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBPcHRpb25zOjpjcmFzaElmQ2FudEFsbG9jYXRlSklUTWVtb3J5KCkgPSB0cnVlOwpAQCAtMzIz
MSw2ICszMjM1LDEwIEBAIHZvaWQgQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmdj
LCBjaGFyKiogYXJndikKICAgICAgICAgICAgIG1fZGVzdHJveVZNID0gdHJ1ZTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CisgICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tY2Fu
LWJsb2NrLWlzLWZhbHNlIikpIHsKKyAgICAgICAgICAgIG1fY2FuQmxvY2tJc0ZhbHNlID0gdHJ1
ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmICghc3RyY21w
KGFyZywgIi0tZGlzYWJsZU9wdGlvbnNGcmVlemluZ0ZvclRlc3RpbmciKSkgewogICAgICAgICAg
ICAgQ29uZmlnOjpkaXNhYmxlRnJlZXppbmdGb3JUZXN0aW5nKCk7CiAgICAgICAgICAgICBjb250
aW51ZTsKQEAgLTMzMjksNiArMzMzNyw4IEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFuZExpbmUm
IG9wdGlvbnMsIGJvb2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29ya2VyIHdv
cmtlcihXb3JrZXJzOjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06OmNyZWF0
ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKKyAgICBpZiAoIWlzV29ya2VyICYmIG9wdGlvbnMubV9j
YW5CbG9ja0lzRmFsc2UpCisgICAgICAgIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9w
dFJlZihuZXcgSlNDOjpTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcihmYWxzZSkpOwogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKICAgICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKaW5k
ZXggN2UzMGFiZTZiMzk4N2UxMjU5MDA3MGEyM2Q1MzAyY2FkN2NhNzBkYS4uYmUwNWYxODU1OTY0
NTIxNTBhOTRkMTQ0YzdkZDgxMTYyN2M0Mzk1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKQEAgLTQzLDExICs0MywxMSBAQCBTVEFUSUNf
QVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQXRvbWljc09iamVjdCk7CiAgICAgbWFj
cm8oZXhjaGFuZ2UsIEV4Y2hhbmdlLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgbWFjcm8oaXNMb2NrRnJlZSwgSXNMb2NrRnJlZSwgMSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8obG9hZCwgTG9hZCwgMikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgbWFjcm8o
bm90aWZ5LCBOb3RpZnksIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgbWFjcm8ob3IsIE9yLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oc3RvcmUsIFN0b3JlLCAzKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oc3Vi
LCBTdWIsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgbWFjcm8od2FpdCwgV2FpdCwgNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgbWFjcm8od2FrZSwgV2FrZSwgMykgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oeG9yLCBY
b3IsIDMpCiAKICNkZWZpbmUgREVDTEFSRV9GVU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1l
LCBjb3VudCkgIFwKQEAgLTgzLDQ1ICs4Myw0MyBAQCB2b2lkIEF0b21pY3NPYmplY3Q6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICNsb3dlck5hbWUpLCBjb3VudCwgYXRvbWljc0Z1bmMg
IyMgdXBwZXJOYW1lLCBBdG9taWNzICMjIHVwcGVyTmFtZSAjIyBJbnRyaW5zaWMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBGT1JfRUFD
SF9BVE9NSUNTX0ZVTkMoUFVUX0RJUkVDVF9OQVRJVkVfRlVOQykKICN1bmRlZiBQVVRfRElSRUNU
X05BVElWRV9GVU5DCisKKyAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04o
KTsKIH0KIAogbmFtZXNwYWNlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvciwgdHlwZW5h
bWUgRnVuYz4KLUVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlKiBhcmdzLCBUaHJvd1Njb3Bl
JiBzY29wZSwgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3LCB1bnNpZ25lZCBhY2Nl
c3NJbmRleCwgY29uc3QgRnVuYyYgZnVuYykKK0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2Rp
ZnlXcml0ZUNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSog
YXJncywgVGhyb3dTY29wZSYgc2NvcGUsIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5Vmll
dywgdW5zaWduZWQgYWNjZXNzSW5kZXgsIGNvbnN0IEZ1bmMmIGZ1bmMpCiB7CiAgICAgSlNHZW5l
cmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4qIHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXc8QWRhcHRvcj4qPih0eXBlZEFycmF5Vmlldyk7CiAgICAgCiAgICAgZG91
YmxlIGV4dHJhQXJnc1tGdW5jOjpudW1FeHRyYUFyZ3MgKyAxXTsgLy8gQWRkIDEgdG8gYXZvaWQg
MCBzaXplIGFycmF5IGVycm9yIGluIFZTLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBG
dW5jOjpudW1FeHRyYUFyZ3M7ICsraSkgewotICAgICAgICBkb3VibGUgdmFsdWUgPSBhcmdzWzIg
KyBpXS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIHZhbHVlID0gYXJn
c1syICsgaV0udG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwog
ICAgICAgICBleHRyYUFyZ3NbaV0gPSB2YWx1ZTsKICAgICB9CiAKKyAgICBpZiAodHlwZWRBcnJh
eS0+aXNEZXRhY2hlZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdl
KTsKKwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZnVuYyh0eXBlZEFycmF5LT50eXBlZFZl
Y3RvcigpICsgYWNjZXNzSW5kZXgsIGV4dHJhQXJncykpOwogfQogCi11bnNpZ25lZCB2YWxpZGF0
ZWRBY2Nlc3NJbmRleChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgYWNjZXNzSW5kZXhWYWx1ZSwgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3KQor
c3RhdGljIHVuc2lnbmVkIHZhbGlkYXRlQXRvbWljQWNjZXNzKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3LCBKU1Zh
bHVlIGFjY2Vzc0luZGV4VmFsdWUpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIGlmIChVTkxJS0VMWSghYWNjZXNzSW5kZXhWYWx1ZS5pc0ludDMyKCkp
KSB7Ci0gICAgICAgIGRvdWJsZSBhY2Nlc3NJbmRleERvdWJsZSA9IGFjY2Vzc0luZGV4VmFsdWUu
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IDA7Cisg
ICAgaWYgKExJS0VMWShhY2Nlc3NJbmRleFZhbHVlLmlzVUludDMyKCkpKQorICAgICAgICBhY2Nl
c3NJbmRleCA9IGFjY2Vzc0luZGV4VmFsdWUuYXNVSW50MzIoKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgYWNjZXNzSW5kZXggPSBhY2Nlc3NJbmRleFZhbHVlLnRvSW5kZXgoZ2xvYmFsT2JqZWN0LCAi
YWNjZXNzSW5kZXgiKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7Ci0g
ICAgICAgIGlmIChhY2Nlc3NJbmRleERvdWJsZSA9PSAwKQotICAgICAgICAgICAgYWNjZXNzSW5k
ZXhWYWx1ZSA9IGpzTnVtYmVyKDApOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFjY2Vz
c0luZGV4VmFsdWUgPSBqc051bWJlcihhY2Nlc3NJbmRleERvdWJsZSk7Ci0gICAgICAgICAgICBp
ZiAoIWFjY2Vzc0luZGV4VmFsdWUuaXNJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dS
YW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBY2Nlc3MgaW5kZXggaXMgbm90IGFuIGlu
dGVnZXIuIl9zKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQogICAgIH0KLSAgICBpbnQzMl90IGFjY2Vzc0luZGV4ID0gYWNjZXNzSW5kZXhWYWx1
ZS5hc0ludDMyKCk7CiAgICAgCiAgICAgQVNTRVJUKHR5cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSA8
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSU5UX01BWCkpOwotICAgIGlmIChzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oYWNjZXNzSW5kZXgpID49IHR5cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSkgeworICAg
IGlmIChhY2Nlc3NJbmRleCA+PSB0eXBlZEFycmF5Vmlldy0+bGVuZ3RoKCkpIHsKICAgICAgICAg
dGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBY2Nlc3MgaW5kZXggb3V0IG9m
IGJvdW5kcyBmb3IgYXRvbWljIGFjY2Vzcy4iX3MpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CkBAIC0xMjksNTUgKzEyNyw4OSBAQCB1bnNpZ25lZCB2YWxpZGF0ZWRBY2Nlc3NJbmRleChWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYWNjZQogICAgIHJldHVy
biBhY2Nlc3NJbmRleDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KLUVuY29kZWRKU1Zh
bHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywgY29uc3QgRnVuYyYgZnVuYykKK3N0YXRpYyBK
U0FycmF5QnVmZmVyVmlldyogdmFsaWRhdGVUeXBlZEFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgdHlwZWRBcnJheVZhbHVlKQogeworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICBKU1ZhbHVlIHR5cGVkQXJyYXlWYWx1ZSA9IGFyZ3NbMF07CiAgICAgaWYgKCF0eXBl
ZEFycmF5VmFsdWUuaXNDZWxsKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3QgYmUgYSBjZWxsLiJfcyk7Ci0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHRo
cm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcmd1bWVudCBuZWVkcyB0byBiZSBh
IHR5cGVkIGFycmF5LiJfcyk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAK
KwogICAgIEpTQ2VsbCogdHlwZWRBcnJheUNlbGwgPSB0eXBlZEFycmF5VmFsdWUuYXNDZWxsKCk7
Ci0gICAgCi0gICAgSlNUeXBlIHR5cGUgPSB0eXBlZEFycmF5Q2VsbC0+dHlwZSgpOwotICAgIHN3
aXRjaCAodHlwZSkgewotICAgIGNhc2UgSW50OEFycmF5VHlwZToKLSAgICBjYXNlIEludDE2QXJy
YXlUeXBlOgotICAgIGNhc2UgSW50MzJBcnJheVR5cGU6Ci0gICAgY2FzZSBVaW50OEFycmF5VHlw
ZToKLSAgICBjYXNlIFVpbnQxNkFycmF5VHlwZToKLSAgICBjYXNlIFVpbnQzMkFycmF5VHlwZToK
LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3QgYmUgYW4gSW50OEFy
cmF5LCBJbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50OEFycmF5LCBVaW50MTZBcnJheSwgb3Ig
VWludDMyQXJyYXkuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICBpZiAoIWlzVHlwZWRWaWV3KHR5cGVkQXJyYXlDZWxsLT5jbGFzc0luZm8o
dm0pLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJBcmd1bWVudCBuZWVkcyB0byBiZSBhIHR5cGVkIGFycmF5LiJf
cyk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKLSAgICBKU0FycmF5QnVm
ZmVyVmlldyogdHlwZWRBcnJheVZpZXcgPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih0eXBl
ZEFycmF5Q2VsbCk7Ci0gICAgaWYgKCF0eXBlZEFycmF5Vmlldy0+aXNTaGFyZWQoKSkgewotICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJn
dW1lbnQgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3
KiB0eXBlZEFycmF5ID0ganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odHlwZWRBcnJheUNlbGwp
OworICAgIGlmICh0eXBlZEFycmF5LT5pc0RldGFjaGVkKCkpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkFyZ3VtZW50IHR5cGVkIGFycmF5IGlzIGRldGFj
aGVkLiJfcyk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKLSAgICB1bnNp
Z25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4KHZtLCBnbG9iYWxPYmplY3Qs
IGFyZ3NbMV0sIHR5cGVkQXJyYXlWaWV3KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAotICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIHJldHVybiB0eXBlZEFycmF5OworfQorCitlbnVtIGNsYXNzIFR5cGVkQXJyYXlP
cGVyYXRpb25Nb2RlIHsgUmVhZCwgV3JpdGUgfTsKK3RlbXBsYXRlPFR5cGVkQXJyYXlPcGVyYXRp
b25Nb2RlIG1vZGU+CitpbmxpbmUgSlNBcnJheUJ1ZmZlclZpZXcqIHZhbGlkYXRlSW50ZWdlclR5
cGVkQXJyYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0eXBlZEFycmF5
VmFsdWUpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0
eXBlZEFycmF5ID0gdmFsaWRhdGVUeXBlZEFycmF5KGdsb2JhbE9iamVjdCwgdHlwZWRBcnJheVZh
bHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgY29u
c3RleHByIChtb2RlID09IFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpXcml0ZSkgeworICAgICAg
ICBzd2l0Y2ggKHR5cGVkQXJyYXktPnR5cGUoKSkgeworICAgICAgICBjYXNlIEludDMyQXJyYXlU
eXBlOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQg
bXVzdCBiZSBhbiBJbnQzMkFycmF5LiJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3dpdGNoICh0eXBlZEFycmF5LT50eXBlKCkp
IHsKKyAgICAgICAgY2FzZSBJbnQ4QXJyYXlUeXBlOgorICAgICAgICBjYXNlIEludDE2QXJyYXlU
eXBlOgorICAgICAgICBjYXNlIEludDMyQXJyYXlUeXBlOgorICAgICAgICBjYXNlIFVpbnQ4QXJy
YXlUeXBlOgorICAgICAgICBjYXNlIFVpbnQxNkFycmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50
MzJBcnJheVR5cGU6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBh
cmd1bWVudCBtdXN0IGJlIGFuIEludDhBcnJheSwgSW50MTZBcnJheSwgSW50MzJBcnJheSwgVWlu
dDhBcnJheSwgVWludDE2QXJyYXksIG9yIFVpbnQzMkFycmF5LiJfcyk7CisgICAgICAgICAgICBy
ZXR1cm4geyB9OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0eXBlZEFycmF5OworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorRW5jb2RlZEpTVmFsdWUgYXRvbWljUmVhZE1vZGlm
eVdyaXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1
ZSogYXJncywgY29uc3QgRnVuYyYgZnVuYykKK3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheVZpZXcg
PSB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpSZWFk
PihnbG9iYWxPYmplY3QsIGFyZ3NbMF0pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNjZXNz
KHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJyYXlWaWV3LCBhcmdzWzFdKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgc3dpdGNoICh0eXBlZEFycmF5Vmlldy0+
dHlwZSgpKSB7CiAgICAgY2FzZSBJbnQ4QXJyYXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWlj
T3BlcmF0aW9uV2l0aEFyZ3NDYXNlPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNj
b3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4g
YXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxJbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdz
LCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIElu
dDE2QXJyYXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNl
PEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcs
IGFjY2Vzc0luZGV4LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0
ZUNhc2U8SW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5
VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgSW50MzJBcnJheVR5cGU6Ci0gICAg
ICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2U8SW50MzJBZGFwdG9yPihnbG9i
YWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMp
OworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxJbnQzMkFkYXB0b3I+
KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwg
ZnVuYyk7CiAgICAgY2FzZSBVaW50OEFycmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09w
ZXJhdGlvbldpdGhBcmdzQ2FzZTxVaW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2Nv
cGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAgICAgIHJldHVybiBh
dG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlPFVpbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdz
LCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIFVp
bnQxNkFycmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2Fz
ZTxVaW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5Vmll
dywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdy
aXRlQ2FzZTxVaW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFy
cmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgVWludDMyQXJyYXlUeXBlOgot
ICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPFVpbnQzMkFkYXB0b3I+
KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwg
ZnVuYyk7CisgICAgICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlPFVpbnQzMkFk
YXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJ
bmRleCwgZnVuYyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
QEAgLTE4NSwxMiArMjE3LDEyIEBAIEVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uCiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmM+Ci1FbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJn
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29u
c3QgRnVuYyYgZnVuYykKK0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgRnVu
YyYgZnVuYykKIHsKICAgICBKU1ZhbHVlIGFyZ3NbMiArIEZ1bmM6Om51bUV4dHJhQXJnc107CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMiArIEZ1bmM6Om51bUV4dHJhQXJnczsgaS0tOykKICAgICAg
ICAgYXJnc1tpXSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoaSk7Ci0gICAgcmV0dXJuIGF0b21pY09w
ZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBm
dW5jKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBmdW5jKTsKIH0KIAogc3RydWN0IEFkZEZ1bmMgewpAQCAt
MzE0LDIyICszNDYsMjIgQEAgRW5jb2RlZEpTVmFsdWUgaXNMb2NrRnJlZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFyZykKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGF0b21pY3NGdW5jQWRkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgQWRkRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1v
ZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBZGRGdW5jKCkpOwogfQogCiBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNBbmQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09w
ZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOworICAg
IHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFu
ZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0NvbXBh
cmVFeGNoYW5nZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21p
Y1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQ29tcGFyZUV4Y2hhbmdl
RnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jRXhjaGFu
Z2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBFeGNoYW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0
ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgRXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNJc0xvY2tGcmVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpAQCAtMzM5LDcxICszNzEsNTcg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jSXNMb2NrRnJlZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0
b21pY3NGdW5jTG9hZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIExvYWRGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9k
aWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIExvYWRGdW5jKCkpOwogfQogCiBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNPciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIE9yRnVuYygpKTsKKyAgICBy
ZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1
bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1N0b3JlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgU3RvcmVGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIFN0b3JlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGF0b21pY3NGdW5jU3ViLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJn
cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgU3ViRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWlj
UmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdWJGdW5jKCkpOwogfQog
CiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWl0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgCi0gICAgSlNJbnQzMkFycmF5KiB0eXBlZEFycmF5ID0ganNEeW5hbWljQ2Fz
dDxKU0ludDMyQXJyYXkqPih2bSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCF0
eXBlZEFycmF5KSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJUeXBlZCBhcnJheSBmb3Igd2FpdC93YWtlIG11c3QgYmUgYW4gSW50MzJBcnJheS4iX3MpOwot
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAg
ICAKKworICAgIGF1dG8qIHR5cGVkQXJyYXlCdWZmZXIgPSB2YWxpZGF0ZUludGVnZXJUeXBlZEFy
cmF5PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpXcml0ZT4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgIGF1dG8qIHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNJbnQzMkFycmF5Kj4odHlwZWRBcnJheUJ1
ZmZlcik7CisKICAgICBpZiAoIXR5cGVkQXJyYXktPmlzU2hhcmVkKCkpIHsKLSAgICAgICAgdGhy
b3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L3dh
a2UgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L25vdGlmeSBt
dXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1ZmZlci4iX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGFjY2Vzc0lu
ZGV4ID0gdmFsaWRhdGVkQWNjZXNzSW5kZXgodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5h
cmd1bWVudCgxKSwgdHlwZWRBcnJheSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKKyAgICB1bnNpZ25lZCBhY2Nl
c3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNjZXNzKHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJy
YXksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisKICAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3Rvcigp
ICsgYWNjZXNzSW5kZXg7Ci0gICAgCisKICAgICBpbnQzMl90IGV4cGVjdGVkVmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDIpLnRvSW50MzIoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAor
CiAgICAgZG91YmxlIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MykudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAorICAgIFNlY29uZHMgdGlt
ZW91dCA9IFNlY29uZHM6OmluZmluaXR5KCk7CisgICAgaWYgKCFzdGQ6OmlzbmFuKHRpbWVvdXRJ
bk1pbGxpc2Vjb25kcykpCisgICAgICAgIHRpbWVvdXQgPSBzdGQ6Om1heChTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyksIDBfcyk7CisKICAgICBpZiAoIXZt
Lm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPmlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhy
ZWFkKCkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkF0
b21pY3Mud2FpdCBjYW5ub3QgYmUgY2FsbGVkIGZyb20gdGhlIGN1cnJlbnQgdGhyZWFkLiJfcyk7
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQot
ICAgIAotICAgIFNlY29uZHMgdGltZW91dCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGlt
ZW91dEluTWlsbGlzZWNvbmRzKTsKLQotICAgIC8vIFRoaXMgY292ZXJzIHRoZSBwcm9wb3NlZCBy
dWxlOgotICAgIC8vCi0gICAgLy8gNC4gSWYgdGltZW91dCBpcyBub3QgcHJvdmlkZWQgb3IgaXMg
dW5kZWZpbmVkIHRoZW4gbGV0IHQgYmUgK2luZi4gT3RoZXJ3aXNlOgotICAgIC8vICAgICBhLiBM
ZXQgcSBiZSA/IFRvTnVtYmVyKHRpbWVvdXQpLgotICAgIC8vICAgICBiLiBJZiBxIGlzIE5hTiB0
aGVuIGxldCB0IGJlICtpbmYsIG90aGVyd2lzZSBsZXQgdCBiZSBtYXgoMCwgcSkuCi0gICAgLy8K
LSAgICAvLyBjYWxsRnJhbWUtPmFyZ3VtZW50KDMpIHJldHVybnMgdW5kZWZpbmVkIGlmIGl0J3Mg
bm90IHByb3ZpZGVkIGFuZCBUb051bWJlcih1bmRlZmluZWQpIHJldHVybnMgTmFOLAotICAgIC8v
IHNvIE5hTiBpcyB0aGUgb25seSBzcGVjaWFsIGNhc2UuCi0gICAgaWYgKCFzdGQ6OmlzbmFuKHRp
bWVvdXQpKQotICAgICAgICB0aW1lb3V0ID0gc3RkOjptYXgoMF9zLCB0aW1lb3V0KTsKLSAgICBl
bHNlCi0gICAgICAgIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgpOwotICAgIAorCiAgICAg
Ym9vbCBkaWRQYXNzVmFsaWRhdGlvbiA9IGZhbHNlOwogICAgIFBhcmtpbmdMb3Q6OlBhcmtSZXN1
bHQgcmVzdWx0OwogICAgIHsKQEAgLTQyNyw0MSArNDQ1LDM4IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihhdG9taWNzRnVuY1dhaXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgcmVzdWx0U3Ry
aW5nKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1dha2UsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNOb3RpZnksIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLSAgICAKLSAgICBKU0ludDMyQXJyYXkqIHR5cGVkQXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpT
SW50MzJBcnJheSo+KHZtLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXR5cGVk
QXJyYXkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5
cGVkIGFycmF5IGZvciB3YWl0L3dha2UgbXVzdCBiZSBhbiBJbnQzMkFycmF5LiJfcyk7Ci0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotICAgIAot
ICAgIGlmICghdHlwZWRBcnJheS0+aXNTaGFyZWQoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgZm9yIHdhaXQvd2FrZSBtdXN0IHdy
YXAgYSBTaGFyZWRBcnJheUJ1ZmZlci4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KIAotICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0g
dmFsaWRhdGVkQWNjZXNzSW5kZXgodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVu
dCgxKSwgdHlwZWRBcnJheSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKLSAgICBpbnQzMl90KiBwdHIgPSB0eXBl
ZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNjZXNzSW5kZXg7Ci0gICAgCisgICAgYXV0byogdHlw
ZWRBcnJheUJ1ZmZlciA9IHZhbGlkYXRlSW50ZWdlclR5cGVkQXJyYXk8VHlwZWRBcnJheU9wZXJh
dGlvbk1vZGU6OldyaXRlPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0byogdHlwZWRBcnJh
eSA9IGpzQ2FzdDxKU0ludDMyQXJyYXkqPih0eXBlZEFycmF5QnVmZmVyKTsKKworICAgIHVuc2ln
bmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRhdGVBdG9taWNBY2Nlc3Modm0sIGdsb2JhbE9iamVjdCwg
dHlwZWRBcnJheSwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKwogICAgIEpTVmFsdWUgY291bnRWYWx1ZSA9IGNhbGxGcmFtZS0+
YXJndW1lbnQoMik7CiAgICAgdW5zaWduZWQgY291bnQgPSBVSU5UX01BWDsKICAgICBpZiAoIWNv
dW50VmFsdWUuaXNVbmRlZmluZWQoKSkgewotICAgICAgICBpbnQzMl90IGNvdW50SW50ID0gY291
bnRWYWx1ZS50b0ludDMyKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7Ci0gICAgICAgIGNvdW50
ID0gc3RkOjptYXgoMCwgY291bnRJbnQpOworICAgICAgICBkb3VibGUgY291bnRJbnQgPSBjb3Vu
dFZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgZG91YmxlIGNvdW50RG91YmxlID0g
c3RkOjptYXgoMC4wLCBjb3VudEludCk7CisgICAgICAgIGlmIChjb3VudERvdWJsZSA8IFVJTlRf
TUFYKQorICAgICAgICAgICAgY291bnQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY291bnREb3Vi
bGUpOwogICAgIH0KIAorICAgIGlmICghdHlwZWRBcnJheS0+aXNTaGFyZWQoKSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisKKyAgICBpbnQzMl90KiBwdHIg
PSB0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNjZXNzSW5kZXg7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihQYXJraW5nTG90Ojp1bnBhcmtDb3VudChwdHIsIGNvdW50
KSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNYb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBY
b3JGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIFhvckZ1bmMoKSk7CiB9CiAKIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJh
bWUtYWRkcmVzcyIpCkBAIC00NzIsNyArNDg3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkF0b21pY3NBZGQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6
ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRv
bWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgQWRkRnVuYygpKTsK
KyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3Ms
IEFkZEZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9t
aWNzQW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBv
cGVyYW5kKSkKQEAgLTQ4MSw3ICs0OTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXRvbWljc0FuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAg
ICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNv
ZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNP
cGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBBbmRGdW5jKCkpOworICAg
IHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgQW5k
RnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3ND
b21wYXJlRXhjaGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRK
U1ZhbHVlIGV4cGVjdGVkLCBFbmNvZGVkSlNWYWx1ZSBuZXdWYWx1ZSkpCkBAIC00OTAsNyArNTA1
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhj
aGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pT
VmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVj
b2RlKGV4cGVjdGVkKSwgSlNWYWx1ZTo6ZGVjb2RlKG5ld1ZhbHVlKX07Ci0gICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIENvbXBhcmVFeGNo
YW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBDb21wYXJlRXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0V4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTQ5OSw3ICs1MTQsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0V4Y2hhbmdlLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1
ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUo
b3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBFeGNoYW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2Rp
ZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBz
aXplKSkKQEAgLTUxNiw3ICs1MzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXRvbWljc0xvYWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBK
U1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShp
bmRleCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBMb2FkRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRl
KHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIExvYWRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc09yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVl
IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTUyNSw3ICs1NDAsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc09yLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVj
b2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFu
ZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0
LCBhcmdzLCBPckZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBhcmdzLCBPckZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BdG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpAQCAtNTM0LDcgKzU0OSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUo
YmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07
Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFy
Z3MsIFN0b3JlRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBn
bG9iYWxPYmplY3QsIGFyZ3MsIFN0b3JlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkF0b21pY3NTdWIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQpAQCAtNTQzLDcgKzU1OCw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUo
YmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07
Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFy
Z3MsIFN1YkZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBhcmdzLCBTdWJGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXRvbWljc1hvciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwg
RW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCkBAIC01NTIsNyArNTY3LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NYb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGcKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNl
KSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAg
ICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywg
WG9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxP
YmplY3QsIGFyZ3MsIFhvckZ1bmMoKSk7CiB9CiAKIElHTk9SRV9XQVJOSU5HU19FTkQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4
IGQ5NWJkOWJmNjRkZmUzMGE0NGM0MjJiMjIzOTI0YzFhYmEzOWZjZDUuLmMwZmEyMjg3NjQ0NDFh
ZDZhNjNhNGUwNmRjZjA0Y2I1YTQ3YWI5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmlu
ZSBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAg
IG1hY3JvKEFycmF5KSBcCiAgICAgbWFjcm8oQXJyYXlCdWZmZXIpIFwKKyAgICBtYWNybyhBdG9t
aWNzKSBcCiAgICAgbWFjcm8oQllURVNfUEVSX0VMRU1FTlQpIFwKICAgICBtYWNybyhCaWdJbnQp
IFwKICAgICBtYWNybyhCb29sZWFuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50cmluc2ljLmNwcAppbmRleCA4OTZjMWNjZGE3ZGM4NDAwNTgwZjUyNjYzMTEyNThjNDRhMzY3
YjdhLi4yNzI1M2UzNDllYjBkMjJmMGFmYjJmMzAzNjcxMDFjNDRmOGI0MGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTI2MSw2ICsyNjEsOCBA
QCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAg
IHJldHVybiAiQXRvbWljc0lzTG9ja0ZyZWVJbnRyaW5zaWMiOwogICAgIGNhc2UgQXRvbWljc0xv
YWRJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQXRvbWljc0xvYWRJbnRyaW5zaWMiOworICAg
IGNhc2UgQXRvbWljc05vdGlmeUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJBdG9taWNzTm90
aWZ5SW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NPckludHJpbnNpYzoKICAgICAgICAgcmV0
dXJuICJBdG9taWNzT3JJbnRyaW5zaWMiOwogICAgIGNhc2UgQXRvbWljc1N0b3JlSW50cmluc2lj
OgpAQCAtMjY5LDggKzI3MSw2IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmluc2lj
IGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJBdG9taWNzU3ViSW50cmluc2ljIjsKICAgICBj
YXNlIEF0b21pY3NXYWl0SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkF0b21pY3NXYWl0SW50
cmluc2ljIjsKLSAgICBjYXNlIEF0b21pY3NXYWtlSW50cmluc2ljOgotICAgICAgICByZXR1cm4g
IkF0b21pY3NXYWtlSW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NYb3JJbnRyaW5zaWM6CiAg
ICAgICAgIHJldHVybiAiQXRvbWljc1hvckludHJpbnNpYyI7CiAgICAgY2FzZSBQYXJzZUludElu
dHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJp
bnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXgg
YjM5YzU2NTEwNDUxYzEyZTlhZmJkOWYyODlhODViYTNiNzBkN2M0Ni4uNWNmMjUwZTk3MTM0N2Iy
NTY0OGVhNmM2ZDFkYjc1ZDk1MjVhODFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50cmluc2ljLmgKQEAgLTE0NiwxMSArMTQ2LDExIEBAIGVudW0gSW50cmluc2ljIDogdWlu
dDhfdCB7CiAgICAgQXRvbWljc0V4Y2hhbmdlSW50cmluc2ljLAogICAgIEF0b21pY3NJc0xvY2tG
cmVlSW50cmluc2ljLAogICAgIEF0b21pY3NMb2FkSW50cmluc2ljLAorICAgIEF0b21pY3NOb3Rp
ZnlJbnRyaW5zaWMsCiAgICAgQXRvbWljc09ySW50cmluc2ljLAogICAgIEF0b21pY3NTdG9yZUlu
dHJpbnNpYywKICAgICBBdG9taWNzU3ViSW50cmluc2ljLAogICAgIEF0b21pY3NXYWl0SW50cmlu
c2ljLAotICAgIEF0b21pY3NXYWtlSW50cmluc2ljLAogICAgIEF0b21pY3NYb3JJbnRyaW5zaWMs
CiAgICAgUGFyc2VJbnRJbnRyaW5zaWMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKaW5kZXggM2QzNjE4N2Ni
OGNiNzYxODU0NTQxNjA2Nzc1OWU0YzI2OTNkZGI2MS4uNzBmMzE3ZjhlNjU5ZDFkMTViNGJiN2E3
NDg2ZmZmM2Y4OTc1NTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKQEAgLTMzLDcyICszMyw4MiBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlC
dWZmZXJQcm90b0Z1bmNTbGljZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihh
cnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSk7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVu
Y0J5dGVMZW5ndGgpOwogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90
b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcnJheUJ1ZmZlclNsaWNlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJyYXlCdWZmZXJWYWx1ZSwgSlNWYWx1ZSBz
dGFydFZhbHVlLCBKU1ZhbHVlIGVuZFZhbHVlLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIG1vZGUp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTQXJyYXlCdWZmZXIqIHRoaXNPYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXIqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUo
KSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0IHx8IHRoaXNPYmplY3QtPmltcGwoKS0+aXNTaGFyZWQo
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlJlY2VpdmVyIG9mIHNsaWNlIG11c3QgYmUgYW4gQXJyYXlCdWZmZXIuIl9zKTsKKyAgICBKU0Fy
cmF5QnVmZmVyKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0s
IGFycmF5QnVmZmVyVmFsdWUpOworICAgIGlmICghdGhpc09iamVjdCB8fCAobW9kZSAhPSB0aGlz
T2JqZWN0LT5pbXBsKCktPnNoYXJpbmdNb2RlKCkpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBtYWtlU3RyaW5nKCJSZWNlaXZlciBtdXN0IGJl
ICJfcywgbW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ID8gIkFycmF5QnVm
ZmVyIl9zIDogIlNoYXJlZEFycmF5QnVmZmVyIl9zKSk7CisKKyAgICBpZiAobW9kZSA9PSBBcnJh
eUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ICYmIHRoaXNPYmplY3QtPmltcGwoKS0+aXNEZXRh
Y2hlZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiUmVjZWl2ZXIgaXMgZGV0YWNoZWQiX3MpOwogCi0gICAgZG91YmxlIGJlZ2luID0gY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUg
YmVnaW4gPSBzdGFydFZhbHVlLnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKKwog
ICAgIGRvdWJsZSBlbmQ7Ci0gICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzVW5kZWZp
bmVkKCkpIHsKLSAgICAgICAgZW5kID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS50
b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoIWVuZFZhbHVlLmlzVW5kZWZpbmVkKCkp
IHsKKyAgICAgICAgZW5kID0gZW5kVmFsdWUudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmpl
Y3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKICAgICB9IGVsc2UKICAgICAgICAgZW5kID0gdGhpc09iamVjdC0+aW1wbCgpLT5ieXRlTGVu
Z3RoKCk7Ci0gICAgCisKKyAgICAvLyAyMy4gSWYgSXNEZXRhY2hlZEJ1ZmZlcihPKSBpcyB0cnVl
LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgICAgLy8gQ2hlY2sgZGV0YWNoIHN0YXR1
cyBhZ2FpbiBzaW5jZSB0b0ludGVnZXJPckluZmluaXR5IGNhbiBoYXZlIHNpZGUgZWZmZWN0Lgor
ICAgIGlmIChtb2RlID09IEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQgJiYgdGhpc09i
amVjdC0+aW1wbCgpLT5pc0RldGFjaGVkKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBpcyBkZXRhY2hlZCJfcyk7CisKICAg
ICBhdXRvIG5ld0J1ZmZlciA9IHRoaXNPYmplY3QtPmltcGwoKS0+c2xpY2UoYmVnaW4sIGVuZCk7
CiAgICAgaWYgKCFuZXdCdWZmZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhy
b3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpKTsKLSAgICAKKwogICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclN0cnVjdHVyZShu
ZXdCdWZmZXItPnNoYXJpbmdNb2RlKCkpOwotICAgIAorCiAgICAgSlNBcnJheUJ1ZmZlciogcmVz
dWx0ID0gSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUobmV3QnVm
ZmVyKSk7Ci0gICAgCisKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAK
LS8vIGh0dHA6Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9zaG1lbS5odG1s
I3NlYy1nZXQtYXJyYXlidWZmZXIucHJvdG90eXBlLmJ5dGVsZW5ndGgKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgYXJyYXlCdWZmZXJWYWx1ZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBt
b2RlKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZl
ciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVyIGJ1dCB3YXMgbm90IGFuIG9iamVjdCJfcyk7CiAK
LSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0s
IHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGFuIGFy
cmF5IGJ1ZmZlciJfcyk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmlzU2hhcmVkKCkpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBz
aG91bGQgbm90IGJlIGEgc2hhcmVkIGFycmF5IGJ1ZmZlciJfcyk7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlcio+KHZtLCBhcnJheUJ1ZmZlclZhbHVl
KTsKKyAgICBpZiAoIXRoaXNPYmplY3QgfHwgKG1vZGUgIT0gdGhpc09iamVjdC0+aW1wbCgpLT5z
aGFyaW5nTW9kZSgpKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgbWFrZVN0cmluZygiUmVjZWl2ZXIgbXVzdCBiZSAiX3MsIG1vZGUgPT0gQXJy
YXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCA/ICJBcnJheUJ1ZmZlciJfcyA6ICJTaGFyZWRB
cnJheUJ1ZmZlciJfcykpOworCisgICAgaWYgKG1vZGUgPT0gQXJyYXlCdWZmZXJTaGFyaW5nTW9k
ZTo6RGVmYXVsdCAmJiB0aGlzT2JqZWN0LT5pbXBsKCktPmlzRGV0YWNoZWQoKSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CiAKLSAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5pbXBsKCkt
PmJ5dGVMZW5ndGgoKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRo
aXNPYmplY3QtPmltcGwoKS0+Ynl0ZUxlbmd0aCgpKSk7CiB9CiAKLS8vIGh0dHA6Ly90YzM5Lmdp
dGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9zaG1lbS5odG1sI1N0cnVjdHVyZWREYXRhLlNo
YXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZS5nZXRfYnl0ZUxlbmd0aAotSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJy
YXkgYnVmZmVyIGJ1dCB3YXMgbm90IGFuIG9iamVjdCJfcyk7CisgICAgcmV0dXJuIGFycmF5QnVm
ZmVyU2xpY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLCBBcnJheUJ1ZmZlclNoYXJpbmdN
b2RlOjpEZWZhdWx0KTsKK30KKworLy8gaHR0cDovL3RjMzkuZ2l0aHViLmlvL2VjbWFzY3JpcHRf
c2hhcmVkbWVtL3NobWVtLmh0bWwjc2VjLWdldC1hcnJheWJ1ZmZlci5wcm90b3R5cGUuYnl0ZWxl
bmd0aAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5j
Qnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVs
dCk7Cit9CiAKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVm
ZmVyKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgc2hvdWxk
IGJlIGFuIGFycmF5IGJ1ZmZlciJfcyk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc1NoYXJlZCgp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
UmVjZWl2ZXIgc2hvdWxkIGJlIGEgc2hhcmVkIGFycmF5IGJ1ZmZlciJfcyk7CitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1
cm4gYXJyYXlCdWZmZXJTbGljZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCks
IGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIEFycmF5QnVm
ZmVyU2hhcmluZ01vZGU6OlNoYXJlZCk7Cit9CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5pbXBsKCktPmJ5dGVMZW5n
dGgoKSkpKTsKKy8vIGh0dHA6Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9z
aG1lbS5odG1sI1N0cnVjdHVyZWREYXRhLlNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZS5nZXRf
Ynl0ZUxlbmd0aAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVyUHJv
dG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJCeXRlTGVuZ3Ro
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSwgQXJyYXlCdWZmZXJTaGFyaW5n
TW9kZTo6U2hhcmVkKTsKIH0KIAogY29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlCdWZmZXJQcm90b3R5
cGU6OnNfaW5mbyA9IHsKQEAgLTExNCwxMiArMTI0LDE0IEBAIHZvaWQgSlNBcnJheUJ1ZmZlclBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIAotICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnNsaWNlLCBh
cnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZyh2bSwgYXJy
YXlCdWZmZXJTaGFyaW5nTW9kZU5hbWUoc2hhcmluZ01vZGUpKSwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBpZiAoc2hhcmlu
Z01vZGUgPT0gQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCkKKyAgICBpZiAoc2hhcmlu
Z01vZGUgPT0gQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCkgeworICAgICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zbGlj
ZSwgYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgICAgICBKU0NfTkFUSVZFX0dFVFRFUl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Ynl0ZUxlbmd0aCwgYXJyYXlCdWZm
ZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIGVsc2UKKyAgICB9IGVsc2Ugewor
ICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5zbGljZSwgc2hhcmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgICAgICBK
U0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Ynl0
ZUxlbmd0aCwgc2hhcmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwor
ICAgIH0KIH0KIAogSlNBcnJheUJ1ZmZlclByb3RvdHlwZSogSlNBcnJheUJ1ZmZlclByb3RvdHlw
ZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEFycmF5QnVmZmVyU2hhcmluZ01vZGUgc2hhcmluZ01vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggYjVhOWJiOTM2OWY1MTZk
NGUzNTk5NDU0MGQxYTRmODk5MWE5MjI0ZS4uMmViMmFiNjNmYmMwNzI0NDQ5YTc1ZmZlNTMwZWNi
MWE2YWIwNTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjk0LDYgKzI5NCw3IEBAIGNsYXNzIEpTVmFsdWUgewogICAgIC8vIEludGVnZXIgY29u
dmVyc2lvbnMuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHRvSW50ZWdlcihKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSB0b0ludGVnZXJQ
cmVzZXJ2ZU5hTihKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIGRvdWJsZSB0b0ludGVnZXJP
ckluZmluaXR5KEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgaW50MzJfdCB0b0ludDMyKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgdWludDMyX3QgdG9VSW50MzIoSlNHbG9iYWxPYmpl
Y3QqKSBjb25zdDsKICAgICB1aW50MzJfdCB0b0luZGV4KEpTR2xvYmFsT2JqZWN0KiwgY29uc3Qg
Y2hhciogZXJyb3JOYW1lKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IGZkNjgyYmJiNjM5NTY4ZGZlZDI1ZTRkYWE0
YWMxZGFiOTc5MjZlZWYuLjcyOTg3ZjA3ZGQ4YTU2ZDc0MTIwYmRmOGNlMTllOTYxNzgxYTg0NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaApAQCAtNzksNiArNzksMTkgQEAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvSW5kZXgo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgY2hhciogZXJyb3IKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTQzo6dG9JbnQzMihkKSk7CiB9CiAKKy8vIGh0dHBzOi8v
dGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eQorLy8gRklYTUU6IFdlIHdp
bGwgcmVwbGFjZSB0b0ludGVnZXIgd2l0aCB0b0ludGVnZXJPckluZmluaXR5LiBUaGUgZGlmZmVy
ZW5jZSBpcyB0aGF0IHRvSW50ZWdlck9ySW5maW5pdHkgd2lsbCBjb252ZXJ0IC0wIHRvICswLgor
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODY0MgoraW5saW5l
IGRvdWJsZSBKU1ZhbHVlOjp0b0ludGVnZXJPckluZmluaXR5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpIGNvbnN0Cit7CisgICAgaWYgKGlzSW50MzIoKSkKKyAgICAgICAgcmV0dXJuIGFz
SW50MzIoKTsKKyAgICBkb3VibGUgZCA9IHRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KHN0ZDo6aXNuYW4oZCkgfHwgZCA9PSAwKQorICAgICAgICByZXR1cm4gMC4wOworICAgIHJldHVy
biB0cnVuYyhkKTsKK30KKwogaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAog
ewogICAgIHJldHVybiBpc0ludDMyKCkgJiYgYXNJbnQzMigpID49IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaAppbmRleCAwY2NmYTAwMWE2ZjdjNDU5
MThkYzAzZWY2OGU5YzRmZDQyYzNmOGZhLi5mZjRjMDAyY2FiZDhmZTEzZmUzODA5OGY5YWIyNWE4
Yjc0NDFkZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rp
b25zLmgKQEAgLTM4OCw3ICszODgsNiBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoVk0mLAogdGVtcGxh
dGU8dHlwZW5hbWUgVmlld0NsYXNzPgogQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7Ci0vLyAgICBWTSYgdm0gPSBn
ZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIC8vIDIyLjIuMy4yMQpAQCAtNDA1LDcgKzQwNCw2IEBAIEFMV0FZU19JTkxJ
TkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShW
TSYgdm0sIEpTR2xvCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBBTFdBWVNfSU5MSU5F
IEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQog
ewotLy8gICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICAvLyAyMi4yLjMuMjUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4NDhlNDAx
NmJmNjExOGJiY2QwYWI2ZjA4NzI5MzI5MjI4NTc0ODE2Li5iNWM1ZjE0NzA4ODYxMjY4ZjA5NDE5
ZWI1MmRjZjU5Nzk0NjdmNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQXN5bmNH
ZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkFzeW5jR2VuZXJhdG9yUHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oIgorI2luY2x1ZGUg
IkF0b21pY3NPYmplY3QuaCIKICNpbmNsdWRlICJCaWdJbnRDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkJpZ0ludE9iamVjdC5oIgogI2luY2x1ZGUgIkJpZ0ludFByb3RvdHlwZS5oIgpAQCAtODI4
LDEwICs4MjksMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAg
IFtdIChjb25zdCBJbml0aWFsaXplcjxKU0Z1bmN0aW9uPiYgaW5pdCkgewogICAgICAgICAgICAg
aW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIDEsIGluaXQu
dm0ucHJvcGVydHlOYW1lcy0+cGFyc2VGbG9hdC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlRmxv
YXQsIE5vSW50cmluc2ljKSk7CiAgICAgICAgIH0pOwotICAgIAorCiAjaWYgRU5BQkxFKFNIQVJF
RF9BUlJBWV9CVUZGRVIpCi0gICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5zZXQodm0s
IHRoaXMsIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNBcnJheUJ1
ZmZlclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSksIEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OlNoYXJlZCkpOwotICAgIG1fc2hhcmVk
QXJyYXlCdWZmZXJTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCkpKTsK
KyAgICBpZiAoT3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBtX3No
YXJlZEFycmF5QnVmZmVyUHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgQXJyYXlCdWZmZXJTaGFy
aW5nTW9kZTo6U2hhcmVkKSk7CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmUu
c2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1f
c2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICB9CiAjZW5kaWYKIAogICAg
IG1faXRlcmF0b3JQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3Jl
YXRlKHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKQEAgLTg5OSwxMCArOTAyLDEzIEBAIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIAogI2lmIEVOQUJMRShTSEFSRURfQVJS
QVlfQlVGRkVSKQogICAgIEpTU2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciogc2hhcmVkQXJy
YXlCdWZmZXJDb25zdHJ1Y3RvciA9IG51bGxwdHI7Ci0gICAgc2hhcmVkQXJyYXlCdWZmZXJDb25z
dHJ1Y3RvciA9IEpTU2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1No
YXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9m
dW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0
KCksIG1fc3BlY2llc0dldHRlclNldHRlci5nZXQoKSk7Ci0gICAgbV9zaGFyZWRBcnJheUJ1ZmZl
clByb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmNvbnN0cnVjdG9yLCBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgQXRvbWljc09i
amVjdCogYXRvbWljc09iamVjdCA9IG51bGxwdHI7CisgICAgaWYgKE9wdGlvbnM6OnVzZVNoYXJl
ZEFycmF5QnVmZmVyKCkpIHsKKyAgICAgICAgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA9
IEpTU2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1NoYXJlZEFycmF5
QnVmZmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCksIG1fc3Bl
Y2llc0dldHRlclNldHRlci5nZXQoKSk7CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90
b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5j
b25zdHJ1Y3Rvciwgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCi0gICAgQXRvbWljc09iamVj
dCogYXRvbWljc09iamVjdCA9IEF0b21pY3NPYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgQXRvbWlj
c09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQo
KSkpOworICAgICAgICBhdG9taWNzT2JqZWN0ID0gQXRvbWljc09iamVjdDo6Y3JlYXRlKHZtLCB0
aGlzLCBBdG9taWNzT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJv
dG90eXBlLmdldCgpKSk7CisgICAgfQogI2VuZGlmCiAKICNkZWZpbmUgQ1JFQVRFX0NPTlNUUlVD
VE9SX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBp
bnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKQEAgLTk4
Miw4ICs5ODgsMTAgQEAgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBD
b25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+UmVnRXhwLCByZWdFeHBDb25zdHJ1
Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogCiAjaWYgRU5BQkxFKFNIQVJFRF9BUlJBWV9CVUZGRVIpCi0gICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlNoYXJlZEFycmF5QnVmZmVyLCBzaGFy
ZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJBdG9taWNzIiksIGF0b21pY3NPYmplY3QsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBp
ZiAoT3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+U2hhcmVkQXJyYXlCdWZmZXIs
IHNoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPkF0b21pY3MsIGF0b21pY3NPYmplY3QsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICB9CiAj
ZW5kaWYKIAogI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxO
YW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5
cGVCYXNlLCBmZWF0dXJlRmxhZykgXApAQCAtMTIxNCw5ICsxMjIyLDE1IEBAIGNhcGl0YWxOYW1l
ICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/
IGNhcGl0YWxOYW1lCiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oTGlua1RpbWVDb25zdGFudDo6aXNUeXBlZEFycmF5VmlldyldLmluaXRMYXRlcihbXSAoY29u
c3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNG
dW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3du
ZXIpLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZp
ZXcsIElzVHlwZWRBcnJheVZpZXdJbnRyaW5zaWMpKTsKICAgICAgICAgfSk7CisgICAgbV9saW5r
VGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6aXNT
aGFyZWRUeXBlZEFycmF5VmlldyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlND
ZWxsPiYgaW5pdCkgeworICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGlu
aXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzU2hhcmVkVHlwZWRBcnJheVZpZXcpKTsKKyAgICAg
ICAgfSk7CiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlu
a1RpbWVDb25zdGFudDo6aXNEZXRhY2hlZCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6
ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3Jl
YXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJp
bmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQpKTsKICAgICAgICAgfSk7
CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVD
b25zdGFudDo6dHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yKV0uaW5pdExhdGVyKFtdIChjb25z
dCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CisgICAgICAgICAgICBpbml0LnNldChKU0Z1
bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25l
ciksIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0
b3IpKTsKKyAgICAgICAgfSk7CiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6dHlwZWRBcnJheVN1YmFycmF5Q3JlYXRlKV0uaW5p
dExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAg
ICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2Jq
ZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
U3ViYXJyYXlDcmVhdGUpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCmluZGV4
IDQ3MDMwMjllNmNjMjg5M2QxZDRiMGNjNTU2ZWU1ZmQ1OTFiMDFhZTQuLmJmYjczMjlkNjBjOWIx
ZTQwZTBmMjIzOTdmOTJmYzdmMGQ2MzE5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVu
Y3Rpb25zLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtODUsNiArODYsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3LCAoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih2YWx1ZS5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyh2YWx1
ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlTdG9y
YWdlVHlwZSkpKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc1NoYXJlZFR5cGVkQXJyYXlWaWV3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBj
YWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOworICAgIGlmICghdmFsdWUuaXNDZWxsKCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CisgICAg
aWYgKCFpc1R5cGVkVmlldyh2YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+
dm0oKSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oanNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odmFsdWUpLT5pc1NoYXJlZCgpKSk7Cit9
CisKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNE
ZXRhY2hlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1
bWVudCgwKTsKQEAgLTkyLDYgKzEwMyw1OCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQsIChKU0dsb2JhbE9iamVjdCogZwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0FycmF5QnVmZmVyVmll
dyo+KGFyZ3VtZW50KS0+aXNEZXRhY2hlZCgpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IsIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICAvLyBodHRwczovL3RjMzku
ZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuc29ydAorCisgICAgSlNWYWx1
ZSB4ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIHkgPSBj
YWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworCisgICAgaWYgKHguaXNOdW1iZXIoKSkg
eworICAgICAgICBBU1NFUlQoeS5pc051bWJlcigpKTsKKyAgICAgICAgaWYgKHguaXNJbnQzMigp
ICYmIHkuaXNJbnQzMigpKSB7CisgICAgICAgICAgICBpbnQzMl90IHhJbnQzMiA9IHguYXNJbnQz
MigpOworICAgICAgICAgICAgaW50MzJfdCB5SW50MzIgPSB5LmFzSW50MzIoKTsKKyAgICAgICAg
ICAgIGlmICh4SW50MzIgPCB5SW50MzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcigtMSkpOworICAgICAgICAgICAgaWYgKHhJbnQzMiA+IHlJbnQzMikK
KyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworICAgICAgICB9
CisKKyAgICAgICAgZG91YmxlIHhEb3VibGUgPSB4LmFzTnVtYmVyKCk7CisgICAgICAgIGRvdWJs
ZSB5RG91YmxlID0geS5hc051bWJlcigpOworICAgICAgICBpZiAoc3RkOjppc25hbih4RG91Ymxl
KSAmJiBzdGQ6OmlzbmFuKHlEb3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcigwKSk7CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHhEb3VibGUpKQorICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxKSk7CisgICAgICAgIGlm
IChzdGQ6OmlzbmFuKHlEb3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcigtMSkpOworICAgICAgICBpZiAoeERvdWJsZSA8IHlEb3VibGUpCisgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgIGlmICh4
RG91YmxlID4geURvdWJsZSkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoMSkpOworICAgICAgICBpZiAoeERvdWJsZSA9PSAwICYmIHlEb3VibGUgPT0gMCkgewor
ICAgICAgICAgICAgaWYgKHN0ZDo6c2lnbmJpdCh4RG91YmxlKSAmJiAhc3RkOjpzaWduYml0KHlE
b3VibGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
LTEpKTsKKyAgICAgICAgICAgIGlmICghc3RkOjpzaWduYml0KHhEb3VibGUpICYmIHN0ZDo6c2ln
bmJpdCh5RG91YmxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKDEpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKDApKTsKKyAgICB9CisgICAgQVNTRVJUKHguaXNCaWdJbnQoKSAmJiB5LmlzQmlnSW50
KCkpOworICAgIHN3aXRjaCAoY29tcGFyZUJpZ0ludCh4LCB5KSkgeworICAgIGNhc2UgSlNCaWdJ
bnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkVxdWFsOgorICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlz
b25SZXN1bHQ6OlVuZGVmaW5lZDoKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigwKSk7CisgICAgY2FzZSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRo
YW46CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOworICAgIGNh
c2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuOgorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoMCkpOworfQorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKaW5kZXggNmNkN2IyYTBkNGRjMWM5YjJlOTUzN2JmMjdh
YWEwODI3ZDc4Yjc1MC4uZDM1MzBmZjZkNjE0ZWZlMGQyMjEyN2MzOGY5NjkwYzJjY2YyMGVmNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRB
cnJheVZpZXdQcm90b3R5cGUuaApAQCAtNTIsNyArNTIsOSBAQCBjbGFzcyBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogfTsKIAogSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFy
cmF5Vmlldyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0
ZUZ1bmNJc1NoYXJlZFR5cGVkQXJyYXlWaWV3KTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IpOwogSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7CiBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgp
OwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0
T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaAppbmRleCAyMjVlMjI0ODNkMDlhYzIwM2JjYmVmZTVjYmE4ZDc1MmYwYWZlMDcy
Li5mODRkZWVjMWMyNmQ1MmNmNzMzMTkwNGEyMDFkOGU4NGQ1YTM0YTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTQ5NCw2ICs0OTQsNyBAQCBK
U19FWFBPUlRfUFJJVkFURSBib29sIGNhblVzZUpJVENhZ2UoKTsKICAgICB2KEJvb2wsIHVzZVdl
YWtSZWZzLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIFdlYWtSZWYgY29uc3RydWN0b3IuIikg
XAogICAgIHYoQm9vbCwgdXNlSW50bERhdGVUaW1lRm9ybWF0RGF5UGVyaW9kLCB0cnVlLCBOb3Jt
YWwsICJFeHBvc2UgdGhlIEludGwuRGF0ZVRpbWVGb3JtYXQgZGF5UGVyaW9kIGZlYXR1cmUuIikg
XAogICAgIHYoQm9vbCwgdXNlQXRNZXRob2QsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIGF0
KCkgbWV0aG9kIG9uIEFycmF5IGFuZCAlVHlwZWRBcnJheSUuIikgXAorICAgIHYoQm9vbCwgdXNl
U2hhcmVkQXJyYXlCdWZmZXIsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2ws
IHVzZUFycmF5QWxsb2NhdGlvblByb2ZpbGluZywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ug
d2lsbCB1c2Ugb3VyIG5vcm1hbCBhcnJheSBhbGxvY2F0aW9uIHByb2ZpbGluZy4gSWYgZmFsc2Us
IHRoZSBhbGxvY2F0aW9uIHByb2ZpbGUgd2lsbCBhbHdheXMgY2xhaW0gdG8gYmUgdW5kZWNpZGVk
LiIpIFwKICAgICB2KEJvb2wsIGZvcmNlUG9seVByb3RvLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1
ZSwgY3JlYXRlX3RoaXMgd2lsbCBhbHdheXMgY3JlYXRlIGFuIG9iamVjdCB3aXRoIGEgcG9seSBw
cm90byBzdHJ1Y3R1cmUuIikgXAogICAgIHYoQm9vbCwgZm9yY2VNaW5pVk1Nb2RlLCBmYWxzZSwg
Tm9ybWFsLCAiSWYgdHJ1ZSwgaXQgd2lsbCBmb3JjZSBtaW5pIFZNIG1vZGUgb24uIikgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIuY3BwCmluZGV4IDAyNWY0YWI5MDA5ZjY3ODg0YWM2ZWEwNTZkMzRiMWNm
NDhmM2YyZmEuLmVmMTYyNjIxNzZhZmYwNTQyOTE3NmZlN2Q1YzgwMjRlMDM1OWQ5ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlci5jcHAKQEAgLTMzLDcgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xs
ZXIoKSB7IH0KK1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpTaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlcihib29sIGFsbG93QXRvbWljc1dhaXQpCisgICAgOiBtX2FsbG93QXRvbWljc1dhaXQo
YWxsb3dBdG9taWNzV2FpdCkKK3sKK30KKwogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6On5T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpIHsgfQogCiBKU0FycmF5QnVmZmVyKiBTaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlcjo6dG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXJyYXlCdWZmZXIqIG5hdGl2ZSkK
QEAgLTU1LDcgKzU5LDcgQEAgdm9pZCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6cmVnaXN0
ZXJXcmFwcGVyKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqIG4KIAogYm9vbCBTaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlcjo6aXNBdG9taWNzV2FpdEFsbG93ZWRPbkN1cnJlbnRUaHJlYWQo
KQogewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2FsbG93QXRvbWljc1dhaXQ7CiB9
CiAKIGJvb2wgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5
cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggZjdlNTBiZmIzZDEwYzcyMjcxNThiYmFhZjE0ZGE1
OTk0ZGE5N2ZlMi4uMjE5Y2FmNDI2MzBlMTczNWExNWM5MTRkZGE1Y2RhYTM0ZGI2ODMzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlci5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBj
bGFzcyBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUeXBlZEFycmF5
Q29udHJvbGxlciB7CiBwdWJsaWM6Ci0gICAgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcihib29sIGFs
bG93QXRvbWljc1dhaXQgPSB0cnVlKTsKICAgICB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIo
KSBmaW5hbDsKICAgICAKICAgICBKU0FycmF5QnVmZmVyKiB0b0pTKEpTR2xvYmFsT2JqZWN0Kiwg
SlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciopIGZpbmFsOwpAQCAtNjMsNiArNjMsNyBAQCBj
bGFzcyBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUeXBlZEFycmF5
Q29udHJvbGxlciB7CiAgICAgfTsKIAogICAgIEpTQXJyYXlCdWZmZXJPd25lciBtX293bmVyOwor
ICAgIGJvb2wgbV9hbGxvd0F0b21pY3NXYWl0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggNzZhZDIzNTlhMWE3YjM0ZWY4OTlk
NDJiMmVjNmU0ZDEwYjNkYzI4ZC4uMDViZDY4MGNhZTY3NTI0YWY0OWRlNTk3NmQ5ODY5NDA4NTFi
MDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC04MzAsNyArODMwLDcgQEAKICNlbmRp
ZgogCiAvKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5
IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlf
QlVGRkVSIDAKKyNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZGRVIgMQogCiAKICNpZiAo
KFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BF
KSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNTc1YTQxZmZjYjU1
YzYxMzhiZmJhMWU0OTQ2M2RhMDJmZTYyMTAyLi4wN2U5MmUzZjM2MTA0MGJkNTIzMzhmYzU1ODlj
ZGZiY2E4N2M3ZDdiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZS1lbmFibGUgU2hhcmVkQXJyYXlCdWZmZXIgZm9y
IEpTQyBzaGVsbCBhbmQgVGVzdGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEyMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtOgorICAgICAgICAoZ2V0
RmVhdHVyZUZsYWdzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAobWFpbik6CisKIDIwMjAtMTEtMDQgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0g
QWRkIGNoZWNrb3V0IGNvbW1hbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9S
dW5uZXIucG0gYi9Ub29scy9TY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtCmluZGV4IGUyMzZkMDU4
YTE0OGY5YWIwM2RjNWQ3ZTg2MWMyYjlkMzIzOGZjZDguLmZiMWU0NTdlOGU5OWU0YjA1MjY4YjQx
YTM5ZjlhOWRhYmM2NzMyZTcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9SdW5u
ZXIucG0KKysrIGIvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbQpAQCAtNzAzLDYgKzcw
MywxMCBAQCBzdWIgZ2V0RmVhdHVyZUZsYWdzIHsKICAgICAgICAgfQogICAgIH0KIAorICAgIGlm
IChncmVwICRfIGVxICdDYW5CbG9ja0lzRmFsc2UnLCBAeyRkYXRhLT57ZmxhZ3N9fSkgeworICAg
ICAgICAkZmVhdHVyZUZsYWdzIC49ICcgLS1jYW4tYmxvY2staXMtZmFsc2UnOworICAgIH0KKwog
ICAgIHJldHVybiAkZmVhdHVyZUZsYWdzOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAzYzhjMGFj
NzE2YzVkZTUxNGNiN2M1MWQ4Y2E1NmZkOTg2M2EzMzc0Li5hNWI0YTRlMDcyZWU4MzNhNjg1NDc2
NTBiNGM4NmI2NjYwNmJiZGQ1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTg4LDYgKzg4LDggQEAgZGVm
IG1haW4oYXJndiwgc3Rkb3V0LCBzdGRlcnIpOgogICAgICAgICBzdGFja1NpemVJbkJ5dGVzID0g
aW50KDEuNSAqIDEwMjQgKiAxMDI0KQogICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxfZW52X3Zh
ci5hcHBlbmQoJ0pTQ19tYXhQZXJUaHJlYWRTdGFja1VzYWdlPScgKyBzdHIoc3RhY2tTaXplSW5C
eXRlcykpCiAgICAgICAgIG9wdGlvbnMuYWRkaXRpb25hbF9lbnZfdmFyLmFwcGVuZCgnX19YUENf
SlNDX21heFBlclRocmVhZFN0YWNrVXNhZ2U9JyArIHN0cihzdGFja1NpemVJbkJ5dGVzKSkKKyAg
ICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsX2Vudl92YXIuYXBwZW5kKCdKU0NfdXNlU2hhcmVkQXJy
YXlCdWZmZXI9MScpCisgICAgICAgIG9wdGlvbnMuYWRkaXRpb25hbF9lbnZfdmFyLmFwcGVuZCgn
X19YUENfSlNDX3VzZVNoYXJlZEFycmF5QnVmZmVyPTEnKQogICAgICAgICBydW5fZGV0YWlscyA9
IHJ1bihwb3J0LCBvcHRpb25zLCBhcmdzLCBzdGRlcnIpCiAgICAgICAgIGlmIHJ1bl9kZXRhaWxz
LmV4aXRfY29kZSAhPSAtMSBhbmQgcnVuX2RldGFpbHMuc2tpcHBlZF9hbGxfdGVzdHM6CiAgICAg
ICAgICAgICByZXR1cm4gcnVuX2RldGFpbHMuZXhpdF9jb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzIyOGFhZGZkOWFk
ODBiOTkyNGVjYTVlYzg2NDUxZjg2YWUyNjgxZC4uNDg0MWVhMDJmNTI1YTRkOWM3MjIxYTQ1YmYx
N2NlMzVkMDc5OTI2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTA1ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFy
cmF5QnVmZmVyIGZvciBKU0Mgc2hlbGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0OgorCiAyMDIwLTExLTA1ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBEZXRlcm1pbmUgYW4gQUFHVUlEIGZvciB0aGUgcGxh
dGZvcm0gYXV0aGVudGljYXRvcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDc2
ODE0Zjg0YzcwNzE4NmI3NDEwMTJmMWMwYjM2NmQzMzQ3ZDBhOTcuLjBmOWQ4MDhkNzUwNDFjZDFk
Yzk1MjA0Y2M1NDRlNjYxZjg1NDIyYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIwLTExLTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIGZvciBKU0Mgc2hl
bGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJv
Y2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9y
bWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5n
LW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20v
cmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJv
Y2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9y
bWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVt
b3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBzLWV4cGVjdGVkLnR4
dDoKKwogMjAyMC0xMS0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIHdpbmRvdy5ldmVudCBtYXkgZ2V0IHNldCBvbiB3cm9uZyBnbG9iYWwgd2hlbiBkaXNwYXRj
aGluZyBhbiBldmVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwt
Mi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJl
cy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2lu
Zy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNt
L3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAppbmRleCA3MjUxZGJjMGQx
NGQ3YTlmOWIzMGIxMDZmZDdhYWY5NjUwYjdlM2UwLi5jZmEzZTAxNzVhMjdiZWExMDU2NjhkM2Nl
OGU2MjY5NzAyYWUxODFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2Rl
bC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVp
cmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJv
Y2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9y
bWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4gYSBXaW5kb3cgYXNzZXJ0X3Rocm93c19qczog
ZnVuY3Rpb24gIigpID0+IHsKLSAgICBBdG9taWNzLndhaXQodGEsIDAsIDAsIDEwKTsKLSAgfSIg
dGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQXRvbWlj
cyIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5j
dGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQor
UEFTUyBbW0NhbkJsb2NrXV0gaW4gYSBXaW5kb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0
aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5h
bnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTQzZGY4Y2ZhYTJkY2UyNTFmYThl
NzQ2YTI1NDM5ZmM1YWJiZWU3YS4uNDRiMmVjZjUyMmI3ZjYyMjFhNmE4ZTE3OGYwYTEyYzhlOTZl
ZjcwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3Jh
dGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJl
Lmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcv
cHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQt
Zm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsMyBAQAogCi1GQUlMIFtbQ2FuQmxvY2tdXSBpbiBhIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gewotICAg
IEF0b21pY3Mud2FpdCh0YSwgMCwgMCwgMTApOwotICB9IiB0aHJldyBvYmplY3QgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBdG9taWNzIiAoIlJlZmVyZW5jZUVycm9yIikg
ZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCitQQVNTIFtbQ2FuQmxvY2tdXSBpbiBh
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJv
Y2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9y
bWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggZWJkZDI4ZTc5Y2ZiY2JkYmY0NGI0OWYwMzcwYjY4NWU5YjJiM2U2ZS4uMGI5ODYwY2Nj
NTM0NGY1MmRkNzg0NTIxMGI5ZDQyM2MyNWMxNDI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50
LWZvcm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2
YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtc3VjY2Vzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4gYSBEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBdG9taWNzCitGQUlMIFtb
Q2FuQmxvY2tdXSBpbiBhIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIFR5cGVkIGFycmF5IGZv
ciB3YWl0L25vdGlmeSBtdXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1ZmZlci4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IDA0N2Q1YzU2YzE0YjBlNGRiYzRjOGYwZjA1NzIzNTUzNmVm
ZTU3ZTMuLjlhMjQ5MDU3ZjQ5ODI2NDk0NmZiYmU2MzE4YWY3MzJiYWQ1YTdkZWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9tZW1vcnkvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVj
dG9yLmFueS1leHBlY3RlZC50eHQKQEAgLTI1LDUgKzI1LDUgQEAgRkFJTCBPcmRlciBvZiBldmFs
dWF0aW9uIGZvciBkZXNjcmlwdG9yICh3aXRoIHNoYXJlZCkgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3QKIFBBU1MgWmVybyBpbml0aWFsCiBQQVNTIE5vbi16ZXJvIGluaXRpYWwKIEZBSUwgU3Ry
YXkgYXJndW1lbnQgV2ViQXNzZW1ibHkuTWVtb3J5IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQKLUZBSUwgU2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnYnVmZmVyVHlwZS5wcm90b3R5cGUnKQorRkFJTCBTaGFyZWQgbWVtb3J5IGFzc2VydF9l
cXVhbHM6IHByb3RvdHlwZSBvZiBidWZmZXIgZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IFNoYXJl
ZEFycmF5QnVmZmVyXSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZmZXJdIgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAwNDdkNWM1NmMxNGIw
ZTRkYmM0YzhmMGYwNTcyMzU1MzZlZmU1N2UzLi45YTI0OTA1N2Y0OTgyNjQ5NDZmYmJlNjMxOGFm
NzMyYmFkNWE3ZGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9tZW1vcnkvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTI1LDUgKzI1LDUgQEAgRkFJTCBPcmRlciBvZiBldmFsdWF0aW9uIGZvciBkZXNjcmlwdG9y
ICh3aXRoIHNoYXJlZCkgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3QKIFBBU1MgWmVybyBpbml0
aWFsCiBQQVNTIE5vbi16ZXJvIGluaXRpYWwKIEZBSUwgU3RyYXkgYXJndW1lbnQgV2ViQXNzZW1i
bHkuTWVtb3J5IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQKLUZBSUwgU2hhcmVkIG1lbW9y
eSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYnVmZmVyVHlwZS5wcm90
b3R5cGUnKQorRkFJTCBTaGFyZWQgbWVtb3J5IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBi
dWZmZXIgZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IFNoYXJlZEFycmF5QnVmZmVyXSIgYnV0IGdv
dCBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZmZXJdIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvcG9zdE1lc3NhZ2VfYmxv
Y2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCAwYWNhOTA3MzYzNTczZjY3NTNmYTM2ZGI2ZDNiZWMwOWY2MzgwMzUzLi4wYzI1YzQxMDdl
NjQxOGI2YWY3YWRlMTJhYjhkNjczNzI0Yzc4Zjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvcG9zdE1lc3NhZ2VfYmxvY2su
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgcG9zdE1lc3NhZ2UgYW5kIGJsb2NrIENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZEFycmF5QnVmZmVyCitQQVNTIHBvc3RNZXNzYWdlIGFuZCBibG9jawog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQK
aW5kZXggMzFlOGE5MWJmNjUwMWE4ZTdhNmM4ZjdmNDgyYzkwZGQ2NTk0ZDI1OC4uYzlhZDdlOGIw
NjBlNzUzZDUwOTUwMjA4MmVhZDBhMjc5NDdkNTg2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtOTUsOCArOTUsMTIgQEAgUEFT
UyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdEZyZXF1ZW5jeURhdGEobnVsbCkgdGhyZXcgVHlwZUVy
cm9yOiAiQXJndW1lbnQgMSAoJ2EKIFBBU1MgICBBbmFseXNlck5vZGUuZ2V0Qnl0ZUZyZXF1ZW5j
eURhdGEobnVsbCkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5h
bHlzZXJOb2RlLmdldEJ5dGVGcmVxdWVuY3lEYXRhIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVWlu
dDhBcnJheSIuCiBQQVNTICAgQW5hbHlzZXJOb2RlLmdldEZsb2F0VGltZURvbWFpbkRhdGEobnVs
bCkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5hbHlzZXJOb2Rl
LmdldEZsb2F0VGltZURvbWFpbkRhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJy
YXkiLgogUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRCeXRlVGltZURvbWFpbkRhdGEobnVsbCkgdGhy
ZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5hbHlzZXJOb2RlLmdldEJ5
dGVUaW1lRG9tYWluRGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXkiLgorUEFT
UyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdEZyZXF1ZW5jeURhdGEoU2hhcmVkQXJyYXlCdWZmZXIg
dmlldykgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMSAoJ2FycmF5JykgdG8gQW5hbHlzZXJO
b2RlLmdldEZsb2F0RnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEZsb2F0MzJB
cnJheSIuCitQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5dGVGcmVxdWVuY3lEYXRhKFNoYXJlZEFy
cmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRv
IEFuYWx5c2VyTm9kZS5nZXRCeXRlRnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFVpbnQ4QXJyYXkiLgorUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRh
KFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdh
cnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRhIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BBU1MgICBBbmFseXNlck5vZGUuZ2V0Qnl0ZVRp
bWVEb21haW5EYXRhKFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFy
Z3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRCeXRlVGltZURvbWFpbkRhdGEg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5Ii4KIFBBU1MgICBBdWRpb0J1ZmZlci5n
ZXRDaGFubmVsRGF0YSgyKSB0aHJldyBJbmRleFNpemVFcnJvcjogIkluZGV4IG11c3QgYmUgbGVz
cyB0aGFuIG51bWJlciBvZiBjaGFubmVscy4iLgotUEFTUyA8IFtjcmVhdGVBbmFseXNlcl0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMjQgYXNzZXJ0aW9ucykKK1BBU1MgPCBbY3JlYXRl
QW5hbHlzZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDI4IGFzc2VydGlvbnMpCiBQ
QVNTID4gW0luaXQgdGVzdCBub2Rlc10gQ3JlYXRlIHRlc3Qgbm9kZXMgZm9yIHRoZSBmb2xsb3dp
bmcgdGVzdHMKIFBBU1MgICBub2RlID0gY29udGV4dC5jcmVhdGVHYWluKCkgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24uCiBQQVNTICAgbm9kZTIgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4KQEAgLTEzMSw3ICsxMzUsMTAgQEAgUEFTUyAgIG5vZGUu
Z2V0RnJlcXVlbmN5UmVzcG9uc2UobmV3IEZsb2F0MzJBcnJheSgxKSwgbmV3IEZsb2F0MzJBcnJh
eSgxKSwgbmV3IEYKIFBBU1MgICBub2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKG51bGwsIG5ldyBG
bG9hdDMyQXJyYXkoMSksIG5ldyBGbG9hdDMyQXJyYXkoMSkpIHRocmV3IFR5cGVFcnJvcjogIkFy
Z3VtZW50IDEgKCdmcmVxdWVuY3lIeicpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5
UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgogUEFTUyAgIG5v
ZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UobmV3IEZsb2F0MzJBcnJheSgxKSwgbnVsbCwgbmV3IEZs
b2F0MzJBcnJheSgxKSkgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMiAoJ21hZ1Jlc3BvbnNl
JykgdG8gQmlxdWFkRmlsdGVyTm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEZsb2F0MzJBcnJheSIuCiBQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25z
ZShuZXcgRmxvYXQzMkFycmF5KDEpLCBuZXcgRmxvYXQzMkFycmF5KDEpLCBudWxsKSB0aHJldyBU
eXBlRXJyb3I6ICJBcmd1bWVudCAzICgncGhhc2VSZXNwb25zZScpIHRvIEJpcXVhZEZpbHRlck5v
ZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJy
YXkiLgotUEFTUyA8IFtiaXF1YWRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNz
ZXJ0aW9ucykKK1BBU1MgICBub2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlKHNoYXJlZF92aWV3LCBu
b25zaGFyZWRfdmlldywgbm9uc2hhcmVkX3ZpZXcpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50
IDEgKCdmcmVxdWVuY3lIeicpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9u
c2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgorUEFTUyAgIG5vZGUuZ2V0
RnJlcXVlbmN5UmVzcG9uc2Uobm9uc2hhcmVkX3ZpZXcsIHNoYXJlZF92aWV3LCBub25zaGFyZWRf
dmlldykgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQgMiAoJ21hZ1Jlc3BvbnNlJykgdG8gQmlx
dWFkRmlsdGVyTm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IEZsb2F0MzJBcnJheSIuCitQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZShub25zaGFy
ZWRfdmlldywgbm9uc2hhcmVkX3ZpZXcsIHNoYXJlZF92aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJB
cmd1bWVudCAzICgncGhhc2VSZXNwb25zZScpIHRvIEJpcXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVl
bmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgorUEFTUyA8
IFtiaXF1YWRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDcgYXNzZXJ0aW9ucykKIFBB
U1MgPiBbb2ZmbGluZS1hdWRpby1jb250ZXh0XSBzdXBwb3J0cyAzMiBjaGFubmVscwogUEFTUyAg
IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDMyLCAxMDAsIGNvbnRleHQuc2FtcGxlUmF0ZSkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIDwgW29mZmxpbmUtYXVkaW8tY29udGV4dF0g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyYTRmOWE2OWI3Zjgz
M2VjNmNiYWM5MjllZTM3MmY0NzU0NzI2YzhjLi5mYzEwYzBhOGQ4ZWY0NGY4MDVlMTUzZmU3Nzkz
MjEwZmU2MTFjNDA5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTExLTA1ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVy
IGZvciBKU0Mgc2hlbGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0byBhbGlnbiB0byB0aGUgbGF0ZXN0IHNw
ZWMuCisKKyAgICAgICAgKiBzdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXItb3B0LmpzOgorICAgICAg
ICAoc2hvdWxkU3VjY2VlZCk6CisgICAgICAgIChpZHgub2Yuc3RyaW5nX2FwcGVhcmVkX2hlcmUu
YS5vZi5hcnJheXMubS5vZi5hdG9taWNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJl
LmEub2YuYXJyYXlzLm0ub2YuYXRvbWljcyk6IERlbGV0ZWQuCisgICAgICAgICogc3RyZXNzL1No
YXJlZEFycmF5QnVmZmVyLmpzOgorICAgICAgICAoc2hvdWxkU3VjY2VlZCk6CisgICAgICAgIChT
eW1ib2wpOgorICAgICAgICAqIHN0cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanM6Cisg
ICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChTeW1ib2wpOgorICAgICAgICAqIHN0cmVz
cy9hdG9taWNzLWFkZC11aW50MzIuanM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3Mta25vd24t
aW50LXVzZS5qczoKKyAgICAgICAgKiBzdHJlc3MvYXRvbWljcy1uZWctemVyby5qczoKKyAgICAg
ICAgKiBzdHJlc3MvYXRvbWljcy1zdG9yZS1yZXR1cm4uanM6CisgICAgICAgICogc3RyZXNzL2xh
cnMtc2FiLXdvcmtlcnMuanM6CisgICAgICAgIChyZXNvdXJjZXMpOgorICAgICAgICAobm90aWZ5
KToKKyAgICAgICAgKHdha2UpOiBEZWxldGVkLgorICAgICAgICAqIHN0cmVzcy9yZWdyZXNzLTE3
MDQ3My5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xODkzMTcuanM6CisgICAgICAgICog
c3RyZXNzL3NoYXJlZC1hcnJheS1idWZmZXItc29ydC13aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlz
LW1vZGlmeWluZy5qczogQWRkZWQuCisgICAgICAgICgyNjIuYWdlbnQud2FpdFVudGlsKToKKyAg
ICAgICAgKDI2Mi5hZ2VudC5zdGFydC4yNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdCk6CisgICAg
ICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sOgorCiAyMDIwLTExLTAzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBiYWNrIHRoZSByZW1vdmVkIGFzc2VydGlvbiBmcm9tIHIyNjkzMzggYW5k
IGFkZCBhIHRlc3QKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVy
LW9wdC5qcyBiL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9wdC5qcwppbmRleCA3
YjJjMjdmZjllYTEzZjEyYzVmNGU0OTcxYjZiNjhiY2NmNDAwMTNhLi43OGUxZGFiNzJkMDVjMjU3
ZGVmYmFjN2M3YzIyYjkxNmFmYjk1MGY3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9TaGFy
ZWRBcnJheUJ1ZmZlci1vcHQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZm
ZXItb3B0LmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBkdiA9IG5ldyBEYXRhVmll
dyhuZXcgU2hhcmVkQXJyYXlCdWZmZXIoMTI4KSk7CiB2YXIgaThhID0gbmV3IEludDhBcnJheShu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoMTI4KSk7CiB2YXIgaTE2YSA9IG5ldyBJbnQxNkFycmF5KG5l
dyBTaGFyZWRBcnJheUJ1ZmZlcigxMjgpKTsKQEAgLTEwNCw2ICsxMDMsMTEgQEAgZnVuY3Rpb24g
c2hvdWxkRmFpbChmLCBuYW1lKQogICAgIHRocm93IG5ldyBFcnJvcihmICsgIiBzdWNjZWVkZWQh
Iik7CiB9CiAKK2Z1bmN0aW9uIHNob3VsZFN1Y2NlZWQoZikKK3sKKyAgICBmKCk7Cit9CisKIGZv
ciAodmFyIGJhZCBvZiBbdm9pZCAwLCBudWxsLCBmYWxzZSwgdHJ1ZSwgMSwgMC41LCBTeW1ib2wo
KSwge30sICJoZWxsbyIsIGR2LCB1OGNhLCBmMzJhLCBmNjRhXSkgewogICAgIHNob3VsZEZhaWwo
KCkgPT4gZ2VuZXJpY0F0b21pY3MuZ2V0KCJhZGQiKShiYWQsIDAsIDApLCBUeXBlRXJyb3IpOwog
ICAgIHNob3VsZEZhaWwoKCkgPT4gZ2VuZXJpY0F0b21pY3MuZ2V0KCJhbmQiKShiYWQsIDAsIDAp
LCBUeXBlRXJyb3IpOwpAQCAtMTE2LDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHNob3VsZEZhaWwoZiwg
bmFtZSkKICAgICBzaG91bGRGYWlsKCgpID0+IGdlbmVyaWNBdG9taWNzLmdldCgieG9yIikoYmFk
LCAwLCAwKSwgVHlwZUVycm9yKTsKIH0KIAotZm9yICh2YXIgaWR4IG9mIFstMSwgLTEwMDAwMDAw
MDAwMDAsIDEwMDAwLCAxMDAwMDAwMDAwMDAwMCwgImhlbGxvIl0pIHsKK2ZvciAodmFyIGlkeCBv
ZiBbLTEsIC0xMDAwMDAwMDAwMDAwLCAxMDAwMDAwMDAwMDAwMCwgMTAwMDBdKSB7CiAgICAgZm9y
ICh2YXIgYSBvZiBhcnJheXMpIHsKICAgICAgICAgZm9yICh2YXIgbSBvZiBbYXRvbWljcy5nZXQo
YSksIGdlbmVyaWNBdG9taWNzXSkgewogICAgICAgICAgICAgc2hvdWxkRmFpbCgoKSA9PiBtLmdl
dCgiYWRkIikoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CkBAIC0xMzIsMyArMTM2LDE5IEBAIGZ1
bmN0aW9uIHNob3VsZEZhaWwoZiwgbmFtZSkKICAgICB9CiB9CiAKK2ZvciAodmFyIGlkeCBvZiBb
ImhlbGxvIl0pIHsKKyAgICBmb3IgKHZhciBhIG9mIGFycmF5cykgeworICAgICAgICBmb3IgKHZh
ciBtIG9mIFthdG9taWNzLmdldChhKSwgZ2VuZXJpY0F0b21pY3NdKSB7CisgICAgICAgICAgICBz
aG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJhZGQiKShhLCBpZHgsIDApKTsKKyAgICAgICAgICAg
IHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImFuZCIpKGEsIGlkeCwgMCkpOworICAgICAgICAg
ICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgiY29tcGFyZUV4Y2hhbmdlIikoYSwgaWR4LCAw
LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJleGNoYW5nZSIp
KGEsIGlkeCwgMCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgibG9h
ZCIpKGEsIGlkeCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgib3Ii
KShhLCBpZHgsIDApKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoInN0
b3JlIikoYSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0
KCJzdWIiKShhLCBpZHgsIDApKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5n
ZXQoInhvciIpKGEsIGlkeCwgMCkpOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qcyBiL0pTVGVzdHMvc3RyZXNzL1No
YXJlZEFycmF5QnVmZmVyLmpzCmluZGV4IDNiMjY5YTc2NTBmYWFiN2Q5YzEwYjc1NzVlMGU0ZWVj
ZDBkNmNmYjMuLjFkNzI3Y2NiZTI4ZmQ1YWIzYmU4MDc4MzIwODdmYTY4YjE1OTVjN2UgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIC8v
IFRoaXMgaXMgYSBiYXNpYyB0ZXN0IG9mIFNoYXJlZEFycmF5QnVmZmVyIEFQSSBhcyB3ZSB1bmRl
cnN0YW5kIGl0LgogCiBpZiAoU2hhcmVkQXJyYXlCdWZmZXIgPT0gQXJyYXlCdWZmZXIpCkBAIC0z
NSwxMSArMzQsMTEgQEAgZnVuY3Rpb24gY2hlY2tBdG9taWNzKG5hbWUsIGNvdW50KQogY2hlY2tB
dG9taWNzKCJleGNoYW5nZSIsIDMpOwogY2hlY2tBdG9taWNzKCJpc0xvY2tGcmVlIiwgMSk7CiBj
aGVja0F0b21pY3MoImxvYWQiLCAyKTsKK2NoZWNrQXRvbWljcygibm90aWZ5IiwgMyk7CiBjaGVj
a0F0b21pY3MoIm9yIiwgMyk7CiBjaGVja0F0b21pY3MoInN0b3JlIiwgMyk7CiBjaGVja0F0b21p
Y3MoInN1YiIsIDMpOwogY2hlY2tBdG9taWNzKCJ3YWl0IiwgNCk7Ci1jaGVja0F0b21pY3MoIndh
a2UiLCAzKTsKIGNoZWNrQXRvbWljcygieG9yIiwgMyk7CiAKIC8vIFRoZXNlIHNob3VsZCBhbGwg
c3VjY2VlZC4KQEAgLTY2LDYgKzY1LDExIEBAIGZ1bmN0aW9uIHNob3VsZEZhaWwoZiwgbmFtZSkK
ICAgICB0aHJvdyBuZXcgRXJyb3IoZiArICIgc3VjY2VlZGVkISIpOwogfQogCitmdW5jdGlvbiBz
aG91bGRTdWNjZWVkKGYpCit7CisgICAgZigpOworfQorCiBmb3IgKGJhZCBvZiBbdm9pZCAwLCBu
dWxsLCBmYWxzZSwgdHJ1ZSwgMSwgMC41LCBTeW1ib2woKSwge30sICJoZWxsbyIsIGR2LCB1OGNh
LCBmMzJhLCBmNjRhXSkgewogICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5hZGQoYmFkLCAw
LCAwKSwgVHlwZUVycm9yKTsKICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3MuYW5kKGJhZCwg
MCwgMCksIFR5cGVFcnJvcik7CkBAIC03OSwxMSArODMsMTEgQEAgZnVuY3Rpb24gc2hvdWxkRmFp
bChmLCBuYW1lKQogfQogCiBmb3IgKGJhZCBvZiBbdm9pZCAwLCBudWxsLCBmYWxzZSwgdHJ1ZSwg
MSwgMC41LCBTeW1ib2woKSwge30sICJoZWxsbyIsIGR2LCBpOGEsIGkxNmEsIHU4YSwgdThjYSwg
dTE2YSwgdTMyYSwgZjMyYSwgZjY0YV0pIHsKKyAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3Mu
bm90aWZ5KGJhZCwgMCwgMCksIFR5cGVFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9t
aWNzLndhaXQoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKLSAgICBzaG91bGRGYWlsKCgpID0+IEF0
b21pY3Mud2FrZShiYWQsIDAsIDApLCBUeXBlRXJyb3IpOwogfQogCi1mb3IgKGlkeCBvZiBbLTEs
IC0xMDAwMDAwMDAwMDAwLCAxMDAwMCwgMTAwMDAwMDAwMDAwMDAsICJoZWxsbyJdKSB7Citmb3Ig
KGlkeCBvZiBbLTEsIC0xMDAwMDAwMDAwMDAwLCAxMDAwMCwgMTAwMDAwMDAwMDAwMDBdKSB7CiAg
ICAgZm9yIChhIG9mIFtpOGEsIGkxNmEsIGkzMmEsIHU4YSwgdTE2YSwgdTMyYV0pIHsKICAgICAg
ICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLmFkZChhLCBpZHgsIDApLCBSYW5nZUVycm9yKTsK
ICAgICAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLmFuZChhLCBpZHgsIDApLCBSYW5nZUVy
cm9yKTsKQEAgLTk1LDggKzk5LDI0IEBAIGZ1bmN0aW9uIHNob3VsZEZhaWwoZiwgbmFtZSkKICAg
ICAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLnN1YihhLCBpZHgsIDApLCBSYW5nZUVycm9y
KTsKICAgICAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLnhvcihhLCBpZHgsIDApLCBSYW5n
ZUVycm9yKTsKICAgICB9CisgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLm5vdGlmeShpMzJh
LCBpZHgsIDApLCBSYW5nZUVycm9yKTsKICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3Mud2Fp
dChpMzJhLCBpZHgsIDApLCBSYW5nZUVycm9yKTsKLSAgICBzaG91bGRGYWlsKCgpID0+IEF0b21p
Y3Mud2FrZShpMzJhLCBpZHgsIDApLCBSYW5nZUVycm9yKTsKK30KKworZm9yIChpZHggb2YgWyJo
ZWxsbyJdKSB7CisgICAgZm9yIChhIG9mIFtpOGEsIGkxNmEsIGkzMmEsIHU4YSwgdTE2YSwgdTMy
YV0pIHsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmFkZChhLCBpZHgsIDAp
KTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmFuZChhLCBpZHgsIDApKTsK
KyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmNvbXBhcmVFeGNoYW5nZShhLCBp
ZHgsIDAsIDApKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmV4Y2hhbmdl
KGEsIGlkeCwgMCkpOworICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3MubG9hZChh
LCBpZHgpKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLm9yKGEsIGlkeCwg
MCkpOworICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Muc3RvcmUoYSwgaWR4LCAw
KSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5zdWIoYSwgaWR4LCAwKSk7
CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy54b3IoYSwgaWR4LCAwKSk7Cisg
ICAgfQorICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5ub3RpZnkoaTMyYSwgaWR4LCAw
KSk7CisgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLndhaXQoaTMyYSwgaWR4LCAwLCAx
KSk7CiB9CiAKIGZ1bmN0aW9uIHJ1bkF0b21pYyhhcnJheSwgaW5kZXgsIGluaXQsIG5hbWUsIGFy
Z3MsIGV4cGVjdGVkUmVzdWx0LCBleHBlY3RlZE91dGNvbWUpCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJh
eS1idWZmZXItYnl0ZS1sZW5ndGguanMKaW5kZXggNzhhNzJmOTIzMmNkMDhlNzVlYTI3OTQyMTRk
N2MyZjY5MTMyZWU1Zi4uODkzYWY2YzQ1MmI5M2NkZmM2MGMwYjA3ZjA2MDVjNTRmMjY5ZmIyMiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qcwpAQCAtMSw0ICsx
LDMgQEAKLS8vQCBza2lwCiBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQogewog
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQpAQCAtNDIsMjUgKzQxLDI1IEBAIGZ1bmN0aW9u
IHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkKIAogICAgIHNob3VsZFRocm93KCgpID0+
IHsKICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihBcnJheUJ1ZmZlci5w
cm90b3R5cGUsICdieXRlTGVuZ3RoJykuZ2V0LmNhbGwoc2hhcmVkQXJyYXlCdWZmZXIpOwotICAg
IH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIHNob3VsZCBub3QgYmUgYSBzaGFyZWQgYXJyYXkgYnVm
ZmVyYCk7CisgICAgfSwgYFR5cGVFcnJvcjogUmVjZWl2ZXIgbXVzdCBiZSBBcnJheUJ1ZmZlcmAp
OwogCiAgICAgc2hvdWxkVGhyb3coKCkgPT4gewogICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKFNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZSwgJ2J5dGVMZW5ndGgnKS5n
ZXQuY2FsbChhcnJheUJ1ZmZlcik7Ci0gICAgfSwgYFR5cGVFcnJvcjogUmVjZWl2ZXIgc2hvdWxk
IGJlIGEgc2hhcmVkIGFycmF5IGJ1ZmZlcmApOworICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVy
IG11c3QgYmUgU2hhcmVkQXJyYXlCdWZmZXJgKTsKIAogICAgIGZvciAobGV0IHZhbHVlIG9mIFsg
MCwgdHJ1ZSwgIkNvY29hIiwgbnVsbCwgdW5kZWZpbmVkLCBTeW1ib2woIkNhcHB1Y2Npbm8iKSBd
KSB7CiAgICAgICAgIHNob3VsZFRocm93KCgpID0+IHsKICAgICAgICAgICAgIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoQXJyYXlCdWZmZXIucHJvdG90eXBlLCAnYnl0ZUxlbmd0aCcp
LmdldC5jYWxsKHZhbHVlKTsKLSAgICAgICAgfSwgYFR5cGVFcnJvcjogUmVjZWl2ZXIgc2hvdWxk
IGJlIGFuIGFycmF5IGJ1ZmZlciBidXQgd2FzIG5vdCBhbiBvYmplY3RgKTsKKyAgICAgICAgfSwg
YFR5cGVFcnJvcjogUmVjZWl2ZXIgbXVzdCBiZSBBcnJheUJ1ZmZlcmApOwogICAgICAgICBzaG91
bGRUaHJvdygoKSA9PiB7CiAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKFNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZSwgJ2J5dGVMZW5ndGgnKS5nZXQuY2FsbCh2
YWx1ZSk7Ci0gICAgICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIHNob3VsZCBiZSBhbiBhcnJh
eSBidWZmZXIgYnV0IHdhcyBub3QgYW4gb2JqZWN0YCk7CisgICAgICAgIH0sIGBUeXBlRXJyb3I6
IFJlY2VpdmVyIG11c3QgYmUgU2hhcmVkQXJyYXlCdWZmZXJgKTsKICAgICB9CiAKICAgICBzaG91
bGRUaHJvdygoKSA9PiB7CiAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
QXJyYXlCdWZmZXIucHJvdG90eXBlLCAnYnl0ZUxlbmd0aCcpLmdldC5jYWxsKHt9KTsKLSAgICB9
LCBgVHlwZUVycm9yOiBSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVyYCk7CisgICAg
fSwgYFR5cGVFcnJvcjogUmVjZWl2ZXIgbXVzdCBiZSBBcnJheUJ1ZmZlcmApOwogICAgIHNob3Vs
ZFRocm93KCgpID0+IHsKICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihT
aGFyZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUsICdieXRlTGVuZ3RoJykuZ2V0LmNhbGwoe30pOwot
ICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIHNob3VsZCBiZSBhbiBhcnJheSBidWZmZXJgKTsK
KyAgICB9LCBgVHlwZUVycm9yOiBSZWNlaXZlciBtdXN0IGJlIFNoYXJlZEFycmF5QnVmZmVyYCk7
CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLWFkZC11aW50MzIuanMgYi9K
U1Rlc3RzL3N0cmVzcy9hdG9taWNzLWFkZC11aW50MzIuanMKaW5kZXggOWIwMDhlMTU0MzkyMzFm
MDMyN2NmYmExOTVkZTM0NmUzZTQ5YWE2Yy4uZDk3ZGRkYjQ2OTcxYzAxYjY3MjdlYTY1ZDc0NjRm
Mzk1YWE4NDFiOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1hZGQtdWludDMy
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVpbnQzMi5qcwpAQCAtMSw0ICsx
LDMgQEAKLS8vQCBza2lwCiB2YXIgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKDQpOwogdmFy
IGEgPSBuZXcgVWludDMyQXJyYXkoc2FiKTsKIHZhciByZXN1bHQgPSBBdG9taWNzLmFkZChhLCAw
LCA0MDAwMDAwMDAwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mta25vd24t
aW50LXVzZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mta25vd24taW50LXVzZS5qcwppbmRl
eCA4MDczMWVhN2M4MjRhN2QyY2ZmYzYyOTNhOWVmNWMyN2I0MWUyZWIyLi40ZTBhOTZjMTU0M2My
ZjA1NGJiZDI0ZTY5YmZlZDc5ZjliMWM4MzQ3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9h
dG9taWNzLWtub3duLWludC11c2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1rbm93
bi1pbnQtdXNlLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIC8vIEJyZWFrIHR5cGUgaW5m
ZXJlbmNlLgogdmFyIG8gPSB7ZjogNDIuNX07CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2F0b21pY3MtbmVnLXplcm8uanMgYi9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLW5lZy16ZXJvLmpz
CmluZGV4IDBhOGU1MmM3YmZhODkyM2Q3MjcxMTUxYTkxNGIyYWZmYjViMzAwM2EuLmY5N2FiZmI1
NDM1NWRlMmI5MDRhMGE2ZmVmNGVlZTBjOWFjYTE4MWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2F0b21pY3MtbmVnLXplcm8uanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWct
emVyby5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgc2FiID0gbmV3IFNoYXJlZEFy
cmF5QnVmZmVyKDQpOwogdmFyIGEgPSBuZXcgSW50MzJBcnJheShzYWIpOwogQXRvbWljcy5hZGQo
YSwgLTAsIDEpOyAvLyBUaGlzIHNob3VsZCBub3QgdGhyb3cuCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9hdG9taWNzLXN0b3JlLXJldHVybi5qcyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mt
c3RvcmUtcmV0dXJuLmpzCmluZGV4IDc4N2ExZmQyNDMxNWEzMGJiODA0NDU4NmZhYjRlYzcwMTRl
OGRkZTEuLjA4MjU2M2YzNDEwYjczZWJkN2RiNmEzM2NmNWU1ODAxMGI3MTVhNDggMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAK
IHZhciBzYWIgPSBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoMSk7CiB2YXIgYSA9IG5ldyBJbnQ4QXJy
YXkoc2FiKTsKIHZhciByZXN1bHQgPSBBdG9taWNzLnN0b3JlKGEsIDAsIDEwMDApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvbGFycy1zYWItd29ya2Vycy5qcyBiL0pTVGVzdHMvc3RyZXNz
L2xhcnMtc2FiLXdvcmtlcnMuanMKaW5kZXggYmFlNDAwZjcyMDg0ZWEyNWYzMWU0YmM0NDQ0Y2Mz
MDUzMmNkMmQzMi4uN2QxY2FkZDMyYWY0OGZjMGQ0NWM5NTNjNTFiODU0YmY3MmU4MjhiYiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvbGFycy1zYWItd29ya2Vycy5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sYXJzLXNhYi13b3JrZXJzLmpzCkBAIC0xLDUgKzEsMyBAQAotLy9AIHNraXAKLQog
dmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcigxMDAgKiA0KTsKIAogdmFyIG1lbW9yeSA9
IG5ldyBJbnQzMkFycmF5KHNhYik7CkBAIC0xNCw3ICsxMiw3IEBAIGZ1bmN0aW9uIHN0YXJ0V29y
a2VyKGNvZGUpCiB9CiAKIHJlc291cmNlcyA9IGAKLWZ1bmN0aW9uIHdhaXQobWVtb3J5LCBpbmRl
eCwgd2FpdENvbmRpdGlvbiwgd2FrZUNvbmRpdGlvbikKK2Z1bmN0aW9uIHdhaXQobWVtb3J5LCBp
bmRleCwgd2FpdENvbmRpdGlvbiwgbm90aWZ5Q29uZGl0aW9uKQogewogICAgIHdoaWxlIChtZW1v
cnlbaW5kZXhdID09IHdhaXRDb25kaXRpb24pIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IEF0b21p
Y3Mud2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uKTsKQEAgLTI4LDIzICsyNiwyMyBA
QCBmdW5jdGlvbiB3YWl0KG1lbW9yeSwgaW5kZXgsIHdhaXRDb25kaXRpb24sIHdha2VDb25kaXRp
b24pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB2YXIgdmFsdWUgPSBt
ZW1vcnlbaW5kZXhdOwotICAgICAgICBpZiAodmFsdWUgIT0gd2FrZUNvbmRpdGlvbikgeworICAg
ICAgICBpZiAodmFsdWUgIT0gbm90aWZ5Q29uZGl0aW9uKSB7CiAgICAgICAgICAgICAkLmFnZW50
LnJlcG9ydCgiRXJyb3I6IHdhaXQgcmV0dXJuZWQgbm90LWVxdWFsIGJ1dCB0aGUgbWVtb3J5IGhh
cyBhIGJhZCB2YWx1ZTogIiArIHZhbHVlKTsKICAgICAgICAgICAgICQuYWdlbnQucmVwb3J0KCJl
cnJvciIpOwogICAgICAgICB9CiAgICAgfQogICAgIHZhciB2YWx1ZSA9IG1lbW9yeVtpbmRleF07
Ci0gICAgaWYgKHZhbHVlICE9IHdha2VDb25kaXRpb24pIHsKKyAgICBpZiAodmFsdWUgIT0gbm90
aWZ5Q29uZGl0aW9uKSB7CiAgICAgICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjogZG9uZSB3YWl0
aW5nIGJ1dCB0aGUgbWVtb3J5IGhhcyBhIGJhZCB2YWx1ZTogIiArIHZhbHVlKTsKICAgICAgICAg
JC5hZ2VudC5yZXBvcnQoImVycm9yIik7CiAgICAgfQogfQogCi1mdW5jdGlvbiB3YWtlKG1lbW9y
eSwgaW5kZXgpCitmdW5jdGlvbiBub3RpZnkobWVtb3J5LCBpbmRleCkKIHsKLSAgICB2YXIgcmVz
dWx0ID0gQXRvbWljcy53YWtlKG1lbW9yeSwgaW5kZXgsIDEpOworICAgIHZhciByZXN1bHQgPSBB
dG9taWNzLm5vdGlmeShtZW1vcnksIGluZGV4LCAxKTsKICAgICBpZiAocmVzdWx0ICE9IDAgJiYg
cmVzdWx0ICE9IDEpIHsKLSAgICAgICAgJC5hZ2VudC5yZXBvcnQoIkVycm9yOiBiYWQgcmVzdWx0
IGZyb20gd2FrZTogIiArIHJlc3VsdCk7CisgICAgICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjog
YmFkIHJlc3VsdCBmcm9tIG5vdGlmeTogIiArIHJlc3VsdCk7CiAgICAgICAgICQuYWdlbnQucmVw
b3J0KCJlcnJvciIpOwogICAgIH0KIH0KQEAgLTY2LDcgKzY0LDcgQEAgZnVuY3Rpb24gd2FrZSht
ZW1vcnksIGluZGV4KQogICAgICAgICAkLmFnZW50LnJlcG9ydCgiMTogSXQgc3RhcnRlZCEiKTsK
ICAgICAgICAgCiAgICAgICAgIG1lbW9yeVtzaG91bGRHb0lkeF0gPSAxOwotICAgICAgICB3YWtl
KG1lbW9yeSwgc2hvdWxkR29JZHgpOworICAgICAgICBub3RpZnkobWVtb3J5LCBzaG91bGRHb0lk
eCk7CiAgICAgICAgIAogICAgICAgICB3YWl0KG1lbW9yeSwgZGlkRW5kSWR4LCAwLCAxKTsKICAg
ICAgICAgCkBAIC04OCwxMiArODYsMTIgQEAgZnVuY3Rpb24gd2FrZShtZW1vcnksIGluZGV4KQog
ICAgICAgICAkLmFnZW50LnJlcG9ydCgiMjogTWVtb3J5OiAiICsgbWVtb3J5KTsKICAgICAgICAg
CiAgICAgICAgIEF0b21pY3Muc3RvcmUobWVtb3J5LCBkaWRTdGFydElkeCwgMSk7Ci0gICAgICAg
IHdha2UobWVtb3J5LCBkaWRTdGFydElkeCk7CisgICAgICAgIG5vdGlmeShtZW1vcnksIGRpZFN0
YXJ0SWR4KTsKICAgICAgICAgCiAgICAgICAgIHdhaXQobWVtb3J5LCBzaG91bGRHb0lkeCwgMCwg
MSk7CiAgICAgICAgIAogICAgICAgICBBdG9taWNzLnN0b3JlKG1lbW9yeSwgZGlkRW5kSWR4LCAx
KTsKLSAgICAgICAgd2FrZShtZW1vcnksIGRpZEVuZElkeCwgMSk7CisgICAgICAgIG5vdGlmeSht
ZW1vcnksIGRpZEVuZElkeCwgMSk7CiAgICAgICAgIAogICAgICAgICAkLmFnZW50LnJlcG9ydCgi
MjogTWVtb3J5OiAiICsgbWVtb3J5KTsKICAgICAgICAgJC5hZ2VudC5yZXBvcnQoImRvbmUiKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTcwNDczLmpzIGIvSlNUZXN0cy9z
dHJlc3MvcmVncmVzcy0xNzA0NzMuanMKaW5kZXggYWE5YWFiYThkYzVlMTAyOWNkNzcxZDM4YTdh
MWY3YjQ2YmFlYzI0MC4uMTZlMTZkNzQ0YjJhMWE1ZGEyNmE1OWUzYjdiMDRlMzkzOTk0YmQwMiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNzA0NzMuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvcmVncmVzcy0xNzA0NzMuanMKQEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAogdmFy
IGhlYXAgPSBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoNDA5Nik7CiB2YXIgVWludDhBcnJheVZpZXcg
PSBuZXcgVWludDhBcnJheShoZWFwKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVn
cmVzcy0xODkzMTcuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4OTMxNy5qcwppbmRleCA4
ZTY4ZWUyNDFlN2E3N2UwN2E2YWFjYzA3YWE0ZmYwNDI2NzdiOGNiLi40YjhmMjg3Zjg2MWFlOGE4
ZjNjYWZiNDc0ZDdlZDViZWVlMzIyMzdjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdy
ZXNzLTE4OTMxNy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4OTMxNy5qcwpAQCAt
OTIsNyArOTIsNyBAQAogICAgICAgICAiQXRvbWljcy5zdG9yZSIsCiAgICAgICAgICJBdG9taWNz
LnN1YiIsCiAgICAgICAgICJBdG9taWNzLndhaXQiLAotICAgICAgICAiQXRvbWljcy53YWtlIiwK
KyAgICAgICAgIkF0b21pY3Mubm90aWZ5IiwKICAgICAgICAgIkF0b21pY3MueG9yIiwKICAgICBd
KTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC1hcnJheS1idWZmZXItc29y
dC13aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlzLW1vZGlmeWluZy5qcyBiL0pTVGVzdHMvc3RyZXNz
L3NoYXJlZC1hcnJheS1idWZmZXItc29ydC13aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlzLW1vZGlm
eWluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NjI3MzFiYWVlZDE1ODZlNDZjNWIyMzk5ZmEwNTI4YWM5ZWIw
MDA1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhcmVkLWFycmF5LWJ1ZmZl
ci1zb3J0LXdoaWxlLWRpZmZlcmVudC10aHJlYWQtaXMtbW9kaWZ5aW5nLmpzCkBAIC0wLDAgKzEs
MzggQEAKKy8vQCBydW5EZWZhdWx0KCItLXdhdGNoZG9nPTEwMDAiLCAiLS13YXRjaGRvZy1leGNl
cHRpb24tb2siKQorCiskMjYyLmFnZW50LndhaXRVbnRpbCA9IGZ1bmN0aW9uKHR5cGVkQXJyYXks
IGluZGV4LCBleHBlY3RlZCkgeworICB2YXIgYWdlbnRzID0gMDsKKyAgd2hpbGUgKChhZ2VudHMg
PSBBdG9taWNzLmxvYWQodHlwZWRBcnJheSwgaW5kZXgpKSAhPT0gZXhwZWN0ZWQpIHsKKyAgICAv
KiBub3RoaW5nICovCisgIH0KK307CisKK2NvbnN0IElURVJBVElPTlMgPSA0MDsKK2NvbnN0IFJV
Tk5JTkcgPSAwOworCitjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoCisgIG5ldyBTaGFyZWRB
cnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogMTAwMDAwKQorKTsKKwor
JDI2Mi5hZ2VudC5zdGFydChgCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChmdW5jdGlv
bihzYWIpIHsKKyAgICBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoc2FiKTsKKyAgICBBdG9t
aWNzLmFkZChpMzJhLCAke1JVTk5JTkd9LCAxKTsKKworICAgIGZvciAodmFyIGogPSAxOyBqIDwg
JHtJVEVSQVRJT05TfTsgKytqKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaTMyYS5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaTMyYVtpXSA9IGo7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICAkMjYyLmFnZW50LnJlcG9ydCgiZG9uZSIpOworICAgICQyNjIuYWdlbnQubGVhdmlu
ZygpOworICB9KTsKK2ApOworCiskMjYyLmFnZW50LmJyb2FkY2FzdChpMzJhLmJ1ZmZlcik7Cisk
MjYyLmFnZW50LndhaXRVbnRpbChpMzJhLCBSVU5OSU5HLCAxKTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCBJVEVSQVRJT05TOyArK2kpIHsKKyAgICBpMzJhLnNvcnQoKTsKK30KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFt
bAppbmRleCBiOTE0OTY3YmRiNzA1MDQyYjg4ZmI5ZjU4MGJiZGFkOWRkOGNlM2IxLi4yYWE5Y2Ji
YmVkMzAzZjkxNzNjZmVjMDJiOWRkNjk0N2NiMzY5NGYzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rl
c3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC02
LDEwICs2LDEwIEBAIGZsYWdzOgogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFz
c0ZpZWxkcwogICBjbGFzcy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZUNsYXNzRmllbGRzCiAg
IEludGwuRGF0ZVRpbWVGb3JtYXQtZGF5UGVyaW9kOiB1c2VJbnRsRGF0ZVRpbWVGb3JtYXREYXlQ
ZXJpb2QKKyAgU2hhcmVkQXJyYXlCdWZmZXI6IHVzZVNoYXJlZEFycmF5QnVmZmVyCisgIEF0b21p
Y3M6IHVzZVNoYXJlZEFycmF5QnVmZmVyCiBza2lwOgogICBmZWF0dXJlczoKLSAgICAtIFNoYXJl
ZEFycmF5QnVmZmVyCi0gICAgLSBBdG9taWNzCiAgICAgLSBBdG9taWNzLndhaXRBc3luYwogICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDkzMQogICAgIC0g
cmVnZXhwLWxvb2tiZWhpbmQKQEAgLTgyLDYgKzgyLDE5IEBAIHNraXA6CiAgICAgLSB0ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9TZXQvQmlnSW50CiAgICAg
LSB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL29mL0JpZ0ludAogCisgICAg
LSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2FkZC9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5z
L0F0b21pY3MvYW5kL2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9jb21wYXJl
RXhjaGFuZ2UvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL2V4Y2hhbmdlL2Jp
Z2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9pc0xvY2tGcmVlL2JpZ2ludAorICAg
IC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9sb2FkL2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1p
bnMvQXRvbWljcy9ub3RpZnkvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL29y
L2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9zdG9yZS9iaWdpbnQKKyAgICAt
IHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvc3ViL2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0L2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy94b3IvYmln
aW50CisKICAgICAjIHJlcXVpcmVzIElDVSBBUElzIGltcGxlbWVudGF0aW9uCiAgICAgIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODIyCiAgICAgLSB0ZXN0L2lu
dGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdFJhbmdlVG9QYXJ0cwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IGM1N2JhYTRmNWI1MjFkYWQ3OGEyYWI1YjVkMDBlYmM5
OTI5YmJkZDguLjk1NDQzMTRiYjBlYTRlZjYxZGNjY2FjYmVmM2EzZmJmZDY3OTc4YzggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTg0Nyw2ICs4NDcsMzAgQEAgdGVzdC9idWlsdC1p
bnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFzdGluZGV4LWFkdi5qczoKIHRlc3QvYnVpbHQt
aW5zL1JlZ0V4cC9xdWFudGlmaWVyLWludGVnZXItbGltaXQuanM6CiAgIGRlZmF1bHQ6ICdTeW50
YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4g
e30gcXVhbnRpZmllcicKICAgc3RyaWN0IG1vZGU6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1
bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKK3Rlc3Qv
YnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLWNvbnN0
cnVjdG9yLWlzLW5vdC1vYmplY3QuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBjb25z
dHJ1Y3RvcmAgdmFsdWUgaXMgbnVsbCBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcmAgdmFsdWUgaXMgbnVsbCBFeHBlY3RlZCBhIFR5cGVFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3Qv
YnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLWlzLW5v
dC1jb25zdHJ1Y3Rvci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9y
W1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUgaXMgT2JqZWN0IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUg
aXMgT2JqZWN0IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIv
cHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtaXMtbm90LW9iamVjdC5qczoKKyAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogYGNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXWAgdmFsdWUgaXMgQm9vbGVh
biBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3Rv
cltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIEJvb2xlYW4gRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1
aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1cm5z
LWxhcmdlci1hcnJheWJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrOMK7LCDCqzEwwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqs4wrssIMKrMTDCuykgdG8gYmUgdHJ1
ZScKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVj
aWVzLXJldHVybnMtbm90LWFycmF5YnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNp
ZXMtcmV0dXJucy1zYW1lLWFycmF5YnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNp
ZXMtcmV0dXJucy1zbWFsbGVyLWFycmF5YnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwordGVzdC9idWlsdC1pbnMvU2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3Nw
ZWNpZXMuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q1tvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdwrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUn
CisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2Jq
ZWN0IFNoYXJlZEFycmF5QnVmZmVyXcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwogdGVz
dC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvZXZlcnkvY2FsbGJhY2tmbi1kZXRhY2hi
dWZmZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKICAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3Qg
YSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413408</attachid>
            <date>2020-11-06 00:17:02 -0800</date>
            <delta_ts>2020-11-06 08:26:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212069-20201106001701.patch</filename>
            <type>text/plain</type>
            <size>106570</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTlkOWQzOGNhMDJiYjdmYTA3Y2MxMGI5YWZmYzdjMjIxMWJmZGE0Li5iMWRiMWNiZTY0N2QzNDYw
YmY0ZDBmYmYxZjZhMmY4MmZlYTM0OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NCBAQAorMjAyMC0xMS0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBmb3IgSlNDIHNoZWxsIGFu
ZCBUZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJldml2ZXMgU2hhcmVkQXJyYXlCdWZmZXIgYW5kIEF0b21pY3MgYW5kIGFs
aWduaW5nIHRoZW0gdG8gdGhlIGxhdGVzdCBzcGVjLgorCisgICAgICAgIDEuIFNoYXJlZEFycmF5
QnVmZmVyJ3Mgc29ydCBzaG91bGQgYmUgZG9uZSBpbiBKUyBzaWRlLiBDKysgc29ydCBpcyBub3Qg
c2FmZSBmb3IgU2hhcmVkQXJyYXlCdWZmZXIgc2luY2UgdGhlIGJ1ZmZlcgorICAgICAgICAgICBj
YW4gYmUgbW9kaWZpZWQgYnkgZGlmZmVyZW50IHRocmVhZHMgd2hpbGUgc29ydGluZy4KKyAgICAg
ICAgMi4gQXRvbWljcy53YWl0IHNob3VsZCBiZSByZW5hbWVkIHRvIEF0b21pY3Mubm90aWZ5Lgor
ICAgICAgICAzLiBBdG9taWNzIG9wZXJhdGlvbiBzaG91bGQgYmUgVmFyQXJncyBpbiBERkcgYmVj
YXVzZSBERkdTU0FMb3dlcmluZ1BoYXNlIGFzc3VtZXMgdGhhdCB0aGV5IGFyZSBWYXJBcmdzIGFu
ZCB0aGV5IGNhbgorICAgICAgICAgICBoYXZlIGFub3RoZXIgYXJnIGZvciBDaGVja0luQm91bmRz
IGRlcGVuZGVuY3kuCisgICAgICAgIDQuIEZvciB0ZXN0MjYyLCBKU0Mgc2hlbGwgc2hvdWxkIHN1
cHBvcnQgIi0tY2FuLWJsb2NrLWlzLWZhbHNlIiBmbGFnLiBJZiBpdCBpcyB0cnVlLCB0aGUgbWFp
biB0aHJlYWQncyBbW0NhbkJsb2NrXV0gYmVjb21lcyBmYWxzZS4KKyAgICAgICAgICAgVGhpcyBt
ZWFucyB0aGF0IGBBdG9taWNzLndhaXRgIGNhbm5vdCBiZSB1c2VkLgorCisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3Rv
dHlwZS5qczoKKyAgICAgICAgKHNvcnQpOgorICAgICAgICAqIGJ5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xv
YmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptdXN0R2VuZXJhdGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc1ZhckFyZ3MgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6Om11c3RHZW5lcmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNTQUxvd2VyaW5nUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBdG9taWNzSXNMb2NrRnJlZSk6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKHByaW50VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAo
Q29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKHJ1bkpTQyk6CisgICAgICAg
ICogcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QXRvbWljc09iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNp
Yy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgorICAgICAgICAqIHJ1bnRpbWUv
SW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6YXJyYXlCdWZmZXJTbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5
QnVmZmVyQnl0ZUxlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvSW50ZWdlck9ySW5m
aW5pdHkgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jUmV2ZXJzZSk6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1By
aXZhdGVGdW5jU29ydCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKToKKyAgICAgICAg
KEpTQzo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OmlzQXRvbWljc1dhaXRBbGxvd2VkT25D
dXJyZW50VGhyZWFkKToKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmg6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwOgorICAgICAgICAoSlND
OjpTbWFsbFN0cmluZ3M6OmluaXRpYWxpemVDb21tb25TdHJpbmdzKToKKyAgICAgICAgKEpTQzo6
U21hbGxTdHJpbmdzOjp2aXNpdFN0cm9uZ1JlZmVyZW5jZXMpOgorICAgICAgICAqIHJ1bnRpbWUv
U21hbGxTdHJpbmdzLmg6CisgICAgICAgIChKU0M6OlNtYWxsU3RyaW5nczo6bm90RXF1YWxTdHJp
bmcgY29uc3QpOgorICAgICAgICAoSlNDOjpTbWFsbFN0cmluZ3M6OnRpbWVkT3V0U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6U21hbGxTdHJpbmdzOjpva1N0cmluZyBjb25zdCk6CisKIDIw
MjAtMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBidWlsZCBmaXggZm9yIEFSTTY0RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkZTA5YjhlMDcyZjYwOWUxOGRj
ZjQ5OGIyYzM4ZmI2MWYxZWVkNjlkLi4wY2QwM2YwYWRlNmM3NWMzYjgwMjg0MjBjNzkyYThmNjBm
MTk3NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTA2ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVy
IGZvciBKU0Mgc2hlbGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMTEtMDQg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9j
ZXNzXSBNb3ZlIHRoZSBpbnRlcm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZyb20gV2ViUGFnZSB0
byBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5h
bWVzLmgKaW5kZXggOWI5YjY0ODgyMGFjMWMyZTU5ODk3ZmFkODNmZGZmZTM3YzdhODVmNS4uNjM5
ZTMzYWVlMTBkNTlkMjI0ZDU5NWM0MzYwMzczN2YwZjIwYTg5OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMTE3LDcgKzExNyw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCiAgICAgbWFjcm8oZGVy
aXZlZENvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oaXNUeXBlZEFycmF5VmlldykgXAorICAgIG1h
Y3JvKGlzU2hhcmVkVHlwZWRBcnJheVZpZXcpIFwKICAgICBtYWNybyhpc0RldGFjaGVkKSBcCisg
ICAgbWFjcm8odHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yKSBcCiAgICAgbWFjcm8oaXNCb3Vu
ZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAg
bWFjcm8oaW5zdGFuY2VPZikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwppbmRleCAyYWRmY2YzOWNlMGRjMjM1MGZmMWRh
NzVkNjkzMWYwMTY3YzJmMGZlLi41YmZjNjA4MGNkYTJlODI5MjdlNWVmZjBiYmNiNTRiMGUyMWY3
NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJh
eVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRB
cnJheVByb3RvdHlwZS5qcwpAQCAtMjM4LDkgKzIzOCwxMyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBh
cmF0b3IpCiAgICAgaWYgKGxlbmd0aCA8IDIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChj
b21wYXJhdG9yICE9PSBAdW5kZWZpbmVkKQorICAgIC8vIHR5cGVkQXJyYXlTb3J0IGlzIG5vdCBz
YWZlIHdoZW4gdGhlIG90aGVyIHRocmVhZCBpcyBtb2RpZnlpbmcgY29udGVudC4gU28gaWYgfHRo
aXN8IGlzIFNoYXJlZEFycmF5QnVmZmVyLAorICAgIC8vIHVzZSBKUy1pbXBsZW1lbnRlZCBzb3J0
aW5nLgorICAgIGlmIChjb21wYXJhdG9yICE9PSBAdW5kZWZpbmVkIHx8IEBpc1NoYXJlZFR5cGVk
QXJyYXlWaWV3KHRoaXMpKSB7CisgICAgICAgIGlmIChjb21wYXJhdG9yID09PSBAdW5kZWZpbmVk
KQorICAgICAgICAgICAgY29tcGFyYXRvciA9IEB0eXBlZEFycmF5RGVmYXVsdENvbXBhcmF0b3I7
CiAgICAgICAgIEB0eXBlZEFycmF5TWVyZ2VTb3J0KHRoaXMsIGxlbmd0aCwgY29tcGFyYXRvcik7
Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBAdHlwZWRBcnJheVNvcnQodGhpcyk7CiAK
ICAgICByZXR1cm4gdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9MaW5rVGltZUNvbnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TGlua1RpbWVDb25zdGFudC5oCmluZGV4IDkyM2ViYjk4YTZmYjdiZmZkZGY3NjExYTAyYTI2MTQw
MjQ5YzY4N2QuLmQzNTlhMzg1NjA2NjI4MDZkMDgwMDRhZjYwYmVmYjc3ZmZjN2U1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApA
QCAtNTMsNyArNTMsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHR5cGVkQXJyYXlH
ZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBudWxscHRyKSBcCiAgICAgdih0eXBlZEFycmF5U29ydCwg
bnVsbHB0cikgXAogICAgIHYoaXNUeXBlZEFycmF5VmlldywgbnVsbHB0cikgXAorICAgIHYoaXNT
aGFyZWRUeXBlZEFycmF5VmlldywgbnVsbHB0cikgXAogICAgIHYoaXNEZXRhY2hlZCwgbnVsbHB0
cikgXAorICAgIHYodHlwZWRBcnJheURlZmF1bHRDb21wYXJhdG9yLCBudWxscHRyKSBcCiAgICAg
dih0eXBlZEFycmF5U3ViYXJyYXlDcmVhdGUsIG51bGxwdHIpIFwKICAgICB2KGlzQm91bmRGdW5j
dGlvbiwgbnVsbHB0cikgXAogICAgIHYoaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBudWxscHRy
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMjM3YzRlMjg3MTE2NDk1NmQwZTRhZDAzYmNhZmIw
YzhlNjA3MjhjZi4uZTM5MGViNjFkNTNjOGI3YTE4YmJlNWQzYWZlYmYxMDY3MzE3OTcyZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtODI2LDcgKzgyNiw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJM
aW1pCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIEF0b21pY3NJc0xvY2tGcmVlOiB7Ci0gICAg
ICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpCisgICAgICAgIGlm
IChtX2dyYXBoLmNoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSAhPSBJbnQzMlVzZSkKICAgICAgICAg
ICAgIGNsb2JiZXJXb3JsZCgpOwogICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwg
U3BlY0Jvb2xJbnQzMik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBmZDg3MTRhMjUwOTIwOGY5NWExNTVh
ZmI1N2U2ZDQzMjhjMGE2MWU5Li4zOTcxMmQ3MTE5ZGQxZTZmOWIwMmIzN2I4OTQzZmMyYmNmZmI2
NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtMjcxNywyNCArMjcxNywxOSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgT3BlcmFuZCByZXN1bHQsIEludHJpbnNpYwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKSA8IDEgKyBudW1BcmdzKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICAgICAgaWYgKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2Zp
bGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEluZGV4aW5nVHlwZSkKKyAgICAgICAg
ICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDb25zdGFudENhY2hlKQorICAgICAgICAgICAgICAgIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJh
ZENhY2hlKQorICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2Zp
bGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFZlY3RvcjxOb2RlKiwgMz4gYXJnczsKICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1BcmdzOyArK2kpCi0gICAgICAgICAg
ICAgICAgYXJncy5hcHBlbmQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5n
VGhpcygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IE5vZGUqIHJlc3VsdE5vZGU7Ci0gICAgICAgICAgICBpZiAobnVtQXJncyArIDEgPD0gMykgewot
ICAgICAgICAgICAgICAgIHdoaWxlIChhcmdzLnNpemUoKSA8IDMpCi0gICAgICAgICAgICAgICAg
ICAgIGFyZ3MuYXBwZW5kKG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHJlc3VsdE5vZGUgPSBh
ZGRUb0dyYXBoKG9wLCBPcEluZm8oQXJyYXlNb2RlKEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rp
b25zLCBhY3Rpb24pLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBhcmdzWzBdLCBhcmdz
WzFdLCBhcmdzWzJdKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChOb2RlKiBub2RlIDogYXJncykKLSAgICAgICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
bm9kZSk7Ci0gICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0Tm9kZSA9IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBvcCwgT3BJbmZv
KEFycmF5TW9kZShBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9ucywgYWN0aW9uKS5hc1dvcmQo
KSksIE9wSW5mbyhwcmVkaWN0aW9uKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhp
cygxICsgaSwgcmVnaXN0ZXJPZmZzZXQpKSk7CisgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChu
dWxscHRyKTsgLy8gRm9yIHN0b3JhZ2UgZWRnZS4KKyAgICAgICAgICAgIE5vZGUqIHJlc3VsdE5v
ZGUgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbyhBcnJheU1vZGUoQXJyYXk6
OlNlbGVjdFVzaW5nUHJlZGljdGlvbnMsIGFjdGlvbikuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGlj
dGlvbikpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBzZXRSZXN1bHQocmVzdWx0Tm9kZSk7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKaW5kZXggOGY2ODdhOGJlYWExMTJiZmI2ZGNmNTdmMjcyYTc0OWFlNzU1YTdl
NS4uZjA5ZGZjZDRlNTQwODNlZWU4NDMyMDMwYTFiYzA5MjE0ZmI3ZDY5MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI1Myw4ICsyNTMsOCBAQCB2b2lk
IGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYg
cmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEF0b21pY3NJ
c0xvY2tGcmVlOgotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEludDMy
VXNlKQotICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CisgICAgICAgIGlmIChncmFw
aC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gSW50MzJVc2UpCisgICAgICAgICAgICBkZWYo
UHVyZVZhbHVlKGdyYXBoLCBub2RlKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsb2Ji
ZXJUb3AoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKaW5kZXggZWIwNDY1MzQ4M2MxMGMyYzJhMGUwNGUyMGNhNzY5MGYzMjFm
ZjEzMC4uNzRlZWUxMjAzNDkwOWVlYzdhNWMwNWNhNjM2YzQ3NmRkMmI0ZTVhZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMzY1LDggKzEzNjUs
OCBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgfQogICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6Ci0gICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpCi0gICAgICAgICAgICAgICAg
Zml4SW50T3JCb29sZWFuRWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBpZiAobV9n
cmFwaC5jaGlsZChub2RlLCAwKS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKKyAgICAgICAgICAg
ICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKG1fZ3JhcGguY2hpbGQobm9kZSwgMCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheVB1c2g6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggODk3Yjk5OWU5NTQ0ZTI5Y2YwMDZmOWQ4
NmM0MjdlNTY5MzNkNWRmZS4uYWJlYjE3YmRjMGYzMTM0NmRhMjMzNzcyNDI5MDZlNzY1YzgwYTA4
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTUwNCwxMCArNTA0LDE1IEBA
IHN0cnVjdCBOb2RlIHsKICAgICB2b2lkIGNvbnZlcnRUb0lkZW50aXR5KCk7CiAgICAgdm9pZCBj
b252ZXJ0VG9JZGVudGl0eU9uKE5vZGUqKTsKIAotICAgIGJvb2wgbXVzdEdlbmVyYXRlKCkKKyAg
ICBib29sIG11c3RHZW5lcmF0ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9mbGFn
cyAmIE5vZGVNdXN0R2VuZXJhdGU7CiAgICAgfQorCisgICAgYm9vbCBoYXNWYXJBcmdzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZUhhc1ZhckFyZ3M7CisgICAg
fQogICAgIAogICAgIGJvb2wgaXNDb25zdGFudCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDFjMjZjM2MxNTE0YWFjMjI2NThkMzA0NGJhOGQ0YWIy
ZTQ3ZDkxZTkuLjc4M2FjOGFlNzQwM2QzMmRhZjUzZTc3YTQyODllZDgxNDk1ODExNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTI5OSw4ICsyOTksOCBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQXRvbWljc0FuZCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFj
cm8oQXRvbWljc0NvbXBhcmVFeGNoYW5nZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc0V4Y2hhbmdlLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKLSAgICBtYWNybyhB
dG9taWNzSXNMb2NrRnJlZSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKLSAgICBtYWNybyhBdG9taWNz
TG9hZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEF0b21p
Y3NJc0xvY2tGcmVlLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAg
bWFjcm8oQXRvbWljc0xvYWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2Rl
SGFzVmFyQXJncykgXAogICAgIG1hY3JvKEF0b21pY3NPciwgTm9kZVJlc3VsdEpTIHwgTm9kZU11
c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgbWFjcm8oQXRvbWljc1N0b3JlLCBO
b2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKICAgICBt
YWNybyhBdG9taWNzU3ViLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhh
c1ZhckFyZ3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NB
TG93ZXJpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2Vy
aW5nUGhhc2UuY3BwCmluZGV4IDZiNjViNjc3YjFkZGUyYWEwNjVmNTNhMTJlNDVjYzRjYzcyN2Q3
ODguLjYzODZiOGEzNjJlMTNlMmEwYTgwMDFhZjM4M2FlNGZlZjhjYzliY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcApAQCAtNzUs
NyArNzUsMTIgQEAgY2xhc3MgU1NBTG93ZXJpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIGNhc2UgQXRvbWljc09yOgogICAgICAgICBjYXNlIEF0b21pY3NTdG9yZToKICAgICAgICAg
Y2FzZSBBdG9taWNzU3ViOgotICAgICAgICBjYXNlIEF0b21pY3NYb3I6CisgICAgICAgIGNhc2Ug
QXRvbWljc1hvcjogeworICAgICAgICAgICAgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gbnVtRXh0
cmFBdG9taWNzQXJncyhtX25vZGUtPm9wKCkpOworICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVj
ayhtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAxKSwgbV9n
cmFwaC5jaGlsZChtX25vZGUsIDIgKyBudW1FeHRyYUFyZ3MpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKICAgICAgICAgY2FzZSBIYXNJbmRleGVkUHJvcGVydHk6CiAgICAgICAg
ICAgICBsb3dlckJvdW5kc0NoZWNrKG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKSwgbV9ncmFwaC5j
aGlsZChtX25vZGUsIDEpLCBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMikpOwogICAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAppbmRleCA2NDY0N2VjMjQyMDc2ZjUwY2Y3ZWY5MmZlMWIzMWQ5M2I1OGJjYWQzLi41
Y2RlZWIzODU4OTRkNzg5YWE2YWMxNDI3OTBlYzJmYzQ2ZTQ4YzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTM0MzAsOCAr
MzQzMCw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9
CiAgICAgICAgIAogICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6IHsKLSAgICAgICAgaWYgKG5v
ZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSAhPSBJbnQzMlVzZSkgewotICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEVkZ2UgY2hp
bGQxID0gbV9ncmFwaC5jaGlsZChub2RlLCAwKTsKKyAgICAgICAgaWYgKGNoaWxkMS51c2VLaW5k
KCkgIT0gSW50MzJVc2UpIHsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wZXJhbmQodGhp
cywgY2hpbGQxKTsKICAgICAgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0gb3BlcmFuZC5ncHIo
KTsKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBHUFJGbHVzaGVk
Q2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CkBAIC0zNDQyLDcgKzM0NDMsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCi0gICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcGVyYW5kKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wZXJhbmQodGhpcywg
Y2hpbGQxKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAgICAgR1BS
UmVnIG9wZXJhbmRHUFIgPSBvcGVyYW5kLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BS
ID0gcmVzdWx0LmdwcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCmluZGV4IGRkNThiYjU0NmExYzYzZGNjY2VmNzYwMTQwYTlkMDRjYjVhYTc4YjEu
LjBmZTJkMGYwMTM5OGNlNmJiNTUyOGQ0N2EzZjViZTgzOTcxNWIxNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTQyNzcsMTIgKzQyNzcs
MTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBpbGVBdG9taWNzSXNMb2Nr
RnJlZSgpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICBpZiAobV9u
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKLSAgICAgICAgICAgIHNldEpT
VmFsdWUodm1DYWxsKEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgd2Vha1BvaW50
ZXIoZ2xvYmFsT2JqZWN0KSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAgICAg
ICBFZGdlIGNoaWxkMSA9IG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKTsKKyAgICAgICAgaWYgKGNo
aWxkMS51c2VLaW5kKCkgIT0gSW50MzJVc2UpIHsKKyAgICAgICAgICAgIHNldEpTVmFsdWUodm1D
YWxsKEludDY0LCBvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgd2Vha1BvaW50ZXIoZ2xvYmFs
T2JqZWN0KSwgbG93SlNWYWx1ZShjaGlsZDEpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIExWYWx1ZSBieXRlcyA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgYnl0ZXMgPSBsb3dJbnQzMihjaGlsZDEpOwogICAg
ICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgdHJ1ZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwog
ICAgICAgICBMQmFzaWNCbG9jayBmYWxzZUNhc2UgPSBtX291dC5uZXdCbG9jaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAppbmRleCBmZTdlN2ZjMGNmYzEzN2NmZGNkYWUzOTAzNjFiNWQ3MGNkNDQzYzJm
Li44MTY3Njg1NzViY2ExNDkxNjgyZWRlZTEzZGQ1MWQxMDA3YWZmZGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJSZWxlYXNlSGVhcEFjY2Vzc1Njb3BlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdQ
cm9maWxlci5oIgorI2luY2x1ZGUgIlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIlN1cGVyU2FtcGxlci5oIgpAQCAtNDI0LDYgKzQyNSw3IEBAIGNsYXNzIENvbW1hbmRM
aW5lIHsKICAgICBib29sIG1fZHVtcE1lbW9yeUZvb3RwcmludCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2R1bXBTYW1wbGluZ1Byb2ZpbGVyRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJs
ZVJlbW90ZURlYnVnZ2luZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhbkJsb2NrSXNGYWxzZSB7
IGZhbHNlIH07CiAKICAgICB2b2lkIHBhcnNlQXJndW1lbnRzKGludCwgY2hhcioqKTsKIH07CkBA
IC0zMDk3LDYgKzMwOTksNyBAQCBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2FnZVN0YXRl
bWVudChib29sIGhlbHAgPSBmYWxzZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kdW1wT3B0
aW9ucyAgICAgICAgICAgICAgRHVtcHMgYWxsIG5vbi1kZWZhdWx0IEpTQyBWTSBvcHRpb25zIGJl
Zm9yZSBjb250aW51aW5nXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS08anNjIFZNIG9w
dGlvbj49PHZhbHVlPiAgU2V0cyB0aGUgc3BlY2lmaWVkIEpTQyBWTSBvcHRpb25cbiIpOwogICAg
IGZwcmludGYoc3RkZXJyLCAiICAtLWRlc3Ryb3ktdm0gICAgICAgICAgICAgICBEZXN0cm95IFZN
IGJlZm9yZSBleGl0aW5nXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1jYW4tYmxvY2st
aXMtZmFsc2UgICAgICAgTWFrZSBtYWluIHRocmVhZCdzIFtbQ2FuQmxvY2tdXSBmYWxzZVxuIik7
CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiRmlsZXMg
d2l0aCBhIC5tanMgZXh0ZW5zaW9uIHdpbGwgYWx3YXlzIGJlIGV2YWx1YXRlZCBhcyBtb2R1bGVz
LlxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwpAQCAtMzExOCw2ICszMTIxLDcgQEAg
dm9pZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQog
ewogICAgIE9wdGlvbnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKICAgICBP
cHRpb25zOjppbml0aWFsaXplKCk7CisgICAgT3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIo
KSA9IHRydWU7CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBPcHRpb25zOjpj
cmFzaElmQ2FudEFsbG9jYXRlSklUTWVtb3J5KCkgPSB0cnVlOwpAQCAtMzIzMSw2ICszMjM1LDEw
IEBAIHZvaWQgQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICAgICAgICAgIG1fZGVzdHJveVZNID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CisgICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tY2FuLWJsb2NrLWlzLWZh
bHNlIikpIHsKKyAgICAgICAgICAgIG1fY2FuQmxvY2tJc0ZhbHNlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tZGlz
YWJsZU9wdGlvbnNGcmVlemluZ0ZvclRlc3RpbmciKSkgewogICAgICAgICAgICAgQ29uZmlnOjpk
aXNhYmxlRnJlZXppbmdGb3JUZXN0aW5nKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMz
MjksNiArMzMzNyw4IEBAIGludCBydW5KU0MoY29uc3QgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJv
b2wgaXNXb3JrZXIsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgV29ya2VyIHdvcmtlcihXb3JrZXJz
OjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgVk0mIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXAp
LmxlYWtSZWYoKTsKKyAgICBpZiAoIWlzV29ya2VyICYmIG9wdGlvbnMubV9jYW5CbG9ja0lzRmFs
c2UpCisgICAgICAgIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgSlND
OjpTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcihmYWxzZSkpOwogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKICAgICBXYXNtOjplbmFibGVGYXN0TWVtb3J5KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKaW5kZXggN2UzMGFiZTZi
Mzk4N2UxMjU5MDA3MGEyM2Q1MzAyY2FkN2NhNzBkYS4uZjA3ZTNhZWI3NTUyYTQwNmJhNDU2YTg0
MjU1M2YyYmVkMWYwYzhkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXRvbWljc09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXRvbWljc09iamVjdC5jcHAKQEAgLTQzLDExICs0MywxMSBAQCBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoQXRvbWljc09iamVjdCk7CiAgICAgbWFjcm8oZXhjaGFuZ2Us
IEV4Y2hhbmdlLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgbWFjcm8oaXNMb2NrRnJlZSwgSXNMb2NrRnJlZSwgMSkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgbWFjcm8obG9hZCwgTG9hZCwgMikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgbWFjcm8obm90aWZ5LCBOb3Rp
ZnksIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
bWFjcm8ob3IsIE9yLCAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgbWFjcm8oc3RvcmUsIFN0b3JlLCAzKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oc3ViLCBTdWIsIDMpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFj
cm8od2FpdCwgV2FpdCwgNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgbWFjcm8od2FrZSwgV2FrZSwgMykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oeG9yLCBYb3IsIDMpCiAKICNk
ZWZpbmUgREVDTEFSRV9GVU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3VudCkgIFwK
QEAgLTgzLDQ1ICs4Myw0MyBAQCB2b2lkIEF0b21pY3NPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICNsb3dlck5hbWUpLCBjb3VudCwgYXRvbWljc0Z1bmMgIyMgdXBwZXJOYW1l
LCBBdG9taWNzICMjIHVwcGVyTmFtZSAjIyBJbnRyaW5zaWMsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBGT1JfRUFDSF9BVE9NSUNTX0ZV
TkMoUFVUX0RJUkVDVF9OQVRJVkVfRlVOQykKICN1bmRlZiBQVVRfRElSRUNUX05BVElWRV9GVU5D
CisKKyAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIAogbmFt
ZXNwYWNlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvciwgdHlwZW5hbWUgRnVuYz4KLUVu
Y29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlKiBhcmdzLCBUaHJvd1Njb3BlJiBzY29wZSwgSlNB
cnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3LCB1bnNpZ25lZCBhY2Nlc3NJbmRleCwgY29u
c3QgRnVuYyYgZnVuYykKK0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2Uo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywgVGhyb3dT
Y29wZSYgc2NvcGUsIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5VmlldywgdW5zaWduZWQg
YWNjZXNzSW5kZXgsIGNvbnN0IEZ1bmMmIGZ1bmMpCiB7CiAgICAgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj4qIHR5cGVkQXJyYXkgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj4qPih0eXBlZEFycmF5Vmlldyk7CiAgICAgCiAgICAgZG91YmxlIGV4dHJhQXJn
c1tGdW5jOjpudW1FeHRyYUFyZ3MgKyAxXTsgLy8gQWRkIDEgdG8gYXZvaWQgMCBzaXplIGFycmF5
IGVycm9yIGluIFZTLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGdW5jOjpudW1FeHRy
YUFyZ3M7ICsraSkgewotICAgICAgICBkb3VibGUgdmFsdWUgPSBhcmdzWzIgKyBpXS50b0ludGVn
ZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZG91YmxlIHZhbHVlID0gYXJnc1syICsgaV0udG9J
bnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwogICAgICAgICBleHRy
YUFyZ3NbaV0gPSB2YWx1ZTsKICAgICB9CiAKKyAgICBpZiAodHlwZWRBcnJheS0+aXNEZXRhY2hl
ZCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKKwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoZnVuYyh0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNj
ZXNzSW5kZXgsIGV4dHJhQXJncykpOwogfQogCi11bnNpZ25lZCB2YWxpZGF0ZWRBY2Nlc3NJbmRl
eChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYWNjZXNzSW5k
ZXhWYWx1ZSwgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3KQorc3RhdGljIHVuc2ln
bmVkIHZhbGlkYXRlQXRvbWljQWNjZXNzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXlWaWV3LCBKU1ZhbHVlIGFjY2Vzc0lu
ZGV4VmFsdWUpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIGlmIChVTkxJS0VMWSghYWNjZXNzSW5kZXhWYWx1ZS5pc0ludDMyKCkpKSB7Ci0gICAgICAg
IGRvdWJsZSBhY2Nlc3NJbmRleERvdWJsZSA9IGFjY2Vzc0luZGV4VmFsdWUudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KTsKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IDA7CisgICAgaWYgKExJS0VM
WShhY2Nlc3NJbmRleFZhbHVlLmlzVUludDMyKCkpKQorICAgICAgICBhY2Nlc3NJbmRleCA9IGFj
Y2Vzc0luZGV4VmFsdWUuYXNVSW50MzIoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYWNjZXNzSW5k
ZXggPSBhY2Nlc3NJbmRleFZhbHVlLnRvSW5kZXgoZ2xvYmFsT2JqZWN0LCAiYWNjZXNzSW5kZXgi
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7Ci0gICAgICAgIGlmIChh
Y2Nlc3NJbmRleERvdWJsZSA9PSAwKQotICAgICAgICAgICAgYWNjZXNzSW5kZXhWYWx1ZSA9IGpz
TnVtYmVyKDApOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFjY2Vzc0luZGV4VmFsdWUg
PSBqc051bWJlcihhY2Nlc3NJbmRleERvdWJsZSk7Ci0gICAgICAgICAgICBpZiAoIWFjY2Vzc0lu
ZGV4VmFsdWUuaXNJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJBY2Nlc3MgaW5kZXggaXMgbm90IGFuIGludGVnZXIuIl9zKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQogICAg
IH0KLSAgICBpbnQzMl90IGFjY2Vzc0luZGV4ID0gYWNjZXNzSW5kZXhWYWx1ZS5hc0ludDMyKCk7
CiAgICAgCiAgICAgQVNTRVJUKHR5cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSA8PSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSU5UX01BWCkpOwotICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYWNj
ZXNzSW5kZXgpID49IHR5cGVkQXJyYXlWaWV3LT5sZW5ndGgoKSkgeworICAgIGlmIChhY2Nlc3NJ
bmRleCA+PSB0eXBlZEFycmF5Vmlldy0+bGVuZ3RoKCkpIHsKICAgICAgICAgdGhyb3dSYW5nZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBY2Nlc3MgaW5kZXggb3V0IG9mIGJvdW5kcyBmb3Ig
YXRvbWljIGFjY2Vzcy4iX3MpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMjksNTUg
KzEyNyw4OSBAQCB1bnNpZ25lZCB2YWxpZGF0ZWRBY2Nlc3NJbmRleChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYWNjZQogICAgIHJldHVybiBhY2Nlc3NJbmRl
eDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KLUVuY29kZWRKU1ZhbHVlIGF0b21pY09w
ZXJhdGlvbldpdGhBcmdzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgSlNWYWx1ZSogYXJncywgY29uc3QgRnVuYyYgZnVuYykKK3N0YXRpYyBKU0FycmF5QnVmZmVy
VmlldyogdmFsaWRhdGVUeXBlZEFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgdHlwZWRBcnJheVZhbHVlKQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU1Zh
bHVlIHR5cGVkQXJyYXlWYWx1ZSA9IGFyZ3NbMF07CiAgICAgaWYgKCF0eXBlZEFycmF5VmFsdWUu
aXNDZWxsKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3QgYmUgYSBjZWxsLiJfcyk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcmd1bWVudCBuZWVkcyB0byBiZSBhIHR5cGVkIGFycmF5
LiJfcyk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKKwogICAgIEpTQ2Vs
bCogdHlwZWRBcnJheUNlbGwgPSB0eXBlZEFycmF5VmFsdWUuYXNDZWxsKCk7Ci0gICAgCi0gICAg
SlNUeXBlIHR5cGUgPSB0eXBlZEFycmF5Q2VsbC0+dHlwZSgpOwotICAgIHN3aXRjaCAodHlwZSkg
ewotICAgIGNhc2UgSW50OEFycmF5VHlwZToKLSAgICBjYXNlIEludDE2QXJyYXlUeXBlOgotICAg
IGNhc2UgSW50MzJBcnJheVR5cGU6Ci0gICAgY2FzZSBVaW50OEFycmF5VHlwZToKLSAgICBjYXNl
IFVpbnQxNkFycmF5VHlwZToKLSAgICBjYXNlIFVpbnQzMkFycmF5VHlwZToKLSAgICAgICAgYnJl
YWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgIlR5cGVkIGFycmF5IGFyZ3VtZW50IG11c3QgYmUgYW4gSW50OEFycmF5LCBJbnQxNkFy
cmF5LCBJbnQzMkFycmF5LCBVaW50OEFycmF5LCBVaW50MTZBcnJheSwgb3IgVWludDMyQXJyYXku
Il9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICBpZiAoIWlzVHlwZWRWaWV3KHR5cGVkQXJyYXlDZWxsLT5jbGFzc0luZm8odm0pLT50eXBlZEFy
cmF5U3RvcmFnZVR5cGUpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJBcmd1bWVudCBuZWVkcyB0byBiZSBhIHR5cGVkIGFycmF5LiJfcyk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKLSAgICBKU0FycmF5QnVmZmVyVmlldyogdHlw
ZWRBcnJheVZpZXcgPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih0eXBlZEFycmF5Q2VsbCk7
Ci0gICAgaWYgKCF0eXBlZEFycmF5Vmlldy0+aXNTaGFyZWQoKSkgewotICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQgbXVzdCB3
cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5
ID0ganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odHlwZWRBcnJheUNlbGwpOworICAgIGlmICh0
eXBlZEFycmF5LT5pc0RldGFjaGVkKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIkFyZ3VtZW50IHR5cGVkIGFycmF5IGlzIGRldGFjaGVkLiJfcyk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKLSAgICB1bnNpZ25lZCBhY2Nlc3NJ
bmRleCA9IHZhbGlkYXRlZEFjY2Vzc0luZGV4KHZtLCBnbG9iYWxPYmplY3QsIGFyZ3NbMV0sIHR5
cGVkQXJyYXlWaWV3KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAotICAgIHN3aXRjaCAodHlwZSkgeworICAgIHJl
dHVybiB0eXBlZEFycmF5OworfQorCitlbnVtIGNsYXNzIFR5cGVkQXJyYXlPcGVyYXRpb25Nb2Rl
IHsgUmVhZCwgV3JpdGUgfTsKK3RlbXBsYXRlPFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlIG1vZGU+
CitpbmxpbmUgSlNBcnJheUJ1ZmZlclZpZXcqIHZhbGlkYXRlSW50ZWdlclR5cGVkQXJyYXkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0eXBlZEFycmF5VmFsdWUpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5ID0g
dmFsaWRhdGVUeXBlZEFycmF5KGdsb2JhbE9iamVjdCwgdHlwZWRBcnJheVZhbHVlKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgY29uc3RleHByIChtb2Rl
ID09IFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpXcml0ZSkgeworICAgICAgICBzd2l0Y2ggKHR5
cGVkQXJyYXktPnR5cGUoKSkgeworICAgICAgICBjYXNlIEludDMyQXJyYXlUeXBlOgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVHlwZWQgYXJyYXkgYXJndW1lbnQgbXVzdCBiZSBhbiBJ
bnQzMkFycmF5LiJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc3dpdGNoICh0eXBlZEFycmF5LT50eXBlKCkpIHsKKyAgICAgICAg
Y2FzZSBJbnQ4QXJyYXlUeXBlOgorICAgICAgICBjYXNlIEludDE2QXJyYXlUeXBlOgorICAgICAg
ICBjYXNlIEludDMyQXJyYXlUeXBlOgorICAgICAgICBjYXNlIFVpbnQ4QXJyYXlUeXBlOgorICAg
ICAgICBjYXNlIFVpbnQxNkFycmF5VHlwZToKKyAgICAgICAgY2FzZSBVaW50MzJBcnJheVR5cGU6
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJheSBhcmd1bWVudCBtdXN0
IGJlIGFuIEludDhBcnJheSwgSW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDhBcnJheSwgVWlu
dDE2QXJyYXksIG9yIFVpbnQzMkFycmF5LiJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9Owor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0eXBlZEFycmF5OworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorRW5jb2RlZEpTVmFsdWUgYXRvbWljUmVhZE1vZGlmeVdyaXRlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogYXJncywgY29u
c3QgRnVuYyYgZnVuYykKK3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheVZpZXcgPSB2YWxpZGF0ZUlu
dGVnZXJUeXBlZEFycmF5PFR5cGVkQXJyYXlPcGVyYXRpb25Nb2RlOjpSZWFkPihnbG9iYWxPYmpl
Y3QsIGFyZ3NbMF0pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAg
ICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZhbGlkYXRlQXRvbWljQWNjZXNzKHZtLCBnbG9iYWxP
YmplY3QsIHR5cGVkQXJyYXlWaWV3LCBhcmdzWzFdKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworCisgICAgc3dpdGNoICh0eXBlZEFycmF5Vmlldy0+dHlwZSgpKSB7CiAg
ICAgY2FzZSBJbnQ4QXJyYXlUeXBlOgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0
aEFyZ3NDYXNlPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFy
cmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1v
ZGlmeVdyaXRlQ2FzZTxJbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlw
ZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIEludDE2QXJyYXlUeXBl
OgotICAgICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPEludDE2QWRhcHRv
cj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlwZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4
LCBmdW5jKTsKKyAgICAgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZUNhc2U8SW50MTZB
ZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNz
SW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgSW50MzJBcnJheVR5cGU6Ci0gICAgICAgIHJldHVybiBh
dG9taWNPcGVyYXRpb25XaXRoQXJnc0Nhc2U8SW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFy
Z3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5kZXgsIGZ1bmMpOworICAgICAgICBy
ZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVj
dCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CiAgICAg
Y2FzZSBVaW50OEFycmF5VHlwZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzQ2FzZTxVaW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJy
YXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAgICAgIHJldHVybiBhdG9taWNSZWFkTW9k
aWZ5V3JpdGVDYXNlPFVpbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBhcmdzLCBzY29wZSwgdHlw
ZWRBcnJheVZpZXcsIGFjY2Vzc0luZGV4LCBmdW5jKTsKICAgICBjYXNlIFVpbnQxNkFycmF5VHlw
ZToKLSAgICAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzQ2FzZTxVaW50MTZBZGFw
dG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNjZXNzSW5k
ZXgsIGZ1bmMpOworICAgICAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlQ2FzZTxVaW50
MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGFyZ3MsIHNjb3BlLCB0eXBlZEFycmF5VmlldywgYWNj
ZXNzSW5kZXgsIGZ1bmMpOwogICAgIGNhc2UgVWludDMyQXJyYXlUeXBlOgotICAgICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3NDYXNlPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVj
dCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7CisgICAg
ICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGVDYXNlPFVpbnQzMkFkYXB0b3I+KGdsb2Jh
bE9iamVjdCwgYXJncywgc2NvcGUsIHR5cGVkQXJyYXlWaWV3LCBhY2Nlc3NJbmRleCwgZnVuYyk7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTE4NSwxMiAr
MjE3LDEyIEBAIEVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmM+Ci1FbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgRnVuYyYgZnVu
YykKK0VuY29kZWRKU1ZhbHVlIGF0b21pY1JlYWRNb2RpZnlXcml0ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgRnVuYyYgZnVuYykKIHsK
ICAgICBKU1ZhbHVlIGFyZ3NbMiArIEZ1bmM6Om51bUV4dHJhQXJnc107CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMiArIEZ1bmM6Om51bUV4dHJhQXJnczsgaS0tOykKICAgICAgICAgYXJnc1tpXSA9
IGNhbGxGcmFtZS0+YXJndW1lbnQoaSk7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBmdW5jKTsKKyAgICBy
ZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBmdW5jKTsKIH0KIAogc3RydWN0IEFkZEZ1bmMgewpAQCAtMzE0LDIyICszNDYs
MjIgQEAgRW5jb2RlZEpTVmFsdWUgaXNMb2NrRnJlZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIGFyZykKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5j
QWRkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgQWRkRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBZGRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oYXRvbWljc0Z1bmNBbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOworICAgIHJldHVybiBhdG9t
aWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFuZEZ1bmMoKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0NvbXBhcmVFeGNoYW5nZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlX
cml0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQ29tcGFyZUV4Y2hhbmdlRnVuYygpKTsKIH0K
IAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jRXhjaGFuZ2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBFeGNo
YW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgRXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oYXRvbWljc0Z1bmNJc0xvY2tGcmVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpAQCAtMzM5LDcxICszNzEsNTcgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jSXNMb2NrRnJlZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEMKIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jTG9h
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIExvYWRGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIExvYWRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oYXRvbWljc0Z1bmNPciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFy
Z3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIE9yRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWlj
UmVhZE1vZGlmeVdyaXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1bmMoKSk7CiB9CiAK
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1N0b3JlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBh
dG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgU3RvcmVGdW5j
KCkpOworICAgIHJldHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIFN0b3JlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21p
Y3NGdW5jU3ViLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgU3ViRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdy
aXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdWJGdW5jKCkpOwogfQogCiBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWl0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
Ci0gICAgSlNJbnQzMkFycmF5KiB0eXBlZEFycmF5ID0ganNEeW5hbWljQ2FzdDxKU0ludDMyQXJy
YXkqPih2bSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCF0eXBlZEFycmF5KSB7
Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJUeXBlZCBhcnJh
eSBmb3Igd2FpdC93YWtlIG11c3QgYmUgYW4gSW50MzJBcnJheS4iX3MpOwotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAgICAKKworICAgIGF1
dG8qIHR5cGVkQXJyYXlCdWZmZXIgPSB2YWxpZGF0ZUludGVnZXJUeXBlZEFycmF5PFR5cGVkQXJy
YXlPcGVyYXRpb25Nb2RlOjpXcml0ZT4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8qIHR5
cGVkQXJyYXkgPSBqc0Nhc3Q8SlNJbnQzMkFycmF5Kj4odHlwZWRBcnJheUJ1ZmZlcik7CisKICAg
ICBpZiAoIXR5cGVkQXJyYXktPmlzU2hhcmVkKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L3dha2UgbXVzdCB3cmFw
IGEgU2hhcmVkQXJyYXlCdWZmZXIuIl9zKTsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0L25vdGlmeSBtdXN0IHdyYXAgYSBT
aGFyZWRBcnJheUJ1ZmZlci4iX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRh
dGVkQWNjZXNzSW5kZXgodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwg
dHlwZWRBcnJheSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpKTsKLSAgICAKKyAgICB1bnNpZ25lZCBhY2Nlc3NJbmRleCA9IHZh
bGlkYXRlQXRvbWljQWNjZXNzKHZtLCBnbG9iYWxPYmplY3QsIHR5cGVkQXJyYXksIGNhbGxGcmFt
ZS0+YXJndW1lbnQoMSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisK
ICAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3RvcigpICsgYWNjZXNzSW5k
ZXg7Ci0gICAgCisKICAgICBpbnQzMl90IGV4cGVjdGVkVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDIpLnRvSW50MzIoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAorCiAgICAgZG91Ymxl
IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMykudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSkpOwotICAgIAorICAgIFNlY29uZHMgdGltZW91dCA9IFNlY29u
ZHM6OmluZmluaXR5KCk7CisgICAgaWYgKCFzdGQ6OmlzbmFuKHRpbWVvdXRJbk1pbGxpc2Vjb25k
cykpCisgICAgICAgIHRpbWVvdXQgPSBzdGQ6Om1heChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KHRpbWVvdXRJbk1pbGxpc2Vjb25kcyksIDBfcyk7CisKICAgICBpZiAoIXZtLm1fdHlwZWRBcnJh
eUNvbnRyb2xsZXItPmlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhyZWFkKCkpIHsKICAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkF0b21pY3Mud2FpdCBj
YW5ub3QgYmUgY2FsbGVkIGZyb20gdGhlIGN1cnJlbnQgdGhyZWFkLiJfcyk7CiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQotICAgIAotICAgIFNl
Y29uZHMgdGltZW91dCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModGltZW91dEluTWlsbGlz
ZWNvbmRzKTsKLQotICAgIC8vIFRoaXMgY292ZXJzIHRoZSBwcm9wb3NlZCBydWxlOgotICAgIC8v
Ci0gICAgLy8gNC4gSWYgdGltZW91dCBpcyBub3QgcHJvdmlkZWQgb3IgaXMgdW5kZWZpbmVkIHRo
ZW4gbGV0IHQgYmUgK2luZi4gT3RoZXJ3aXNlOgotICAgIC8vICAgICBhLiBMZXQgcSBiZSA/IFRv
TnVtYmVyKHRpbWVvdXQpLgotICAgIC8vICAgICBiLiBJZiBxIGlzIE5hTiB0aGVuIGxldCB0IGJl
ICtpbmYsIG90aGVyd2lzZSBsZXQgdCBiZSBtYXgoMCwgcSkuCi0gICAgLy8KLSAgICAvLyBjYWxs
RnJhbWUtPmFyZ3VtZW50KDMpIHJldHVybnMgdW5kZWZpbmVkIGlmIGl0J3Mgbm90IHByb3ZpZGVk
IGFuZCBUb051bWJlcih1bmRlZmluZWQpIHJldHVybnMgTmFOLAotICAgIC8vIHNvIE5hTiBpcyB0
aGUgb25seSBzcGVjaWFsIGNhc2UuCi0gICAgaWYgKCFzdGQ6OmlzbmFuKHRpbWVvdXQpKQotICAg
ICAgICB0aW1lb3V0ID0gc3RkOjptYXgoMF9zLCB0aW1lb3V0KTsKLSAgICBlbHNlCi0gICAgICAg
IHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgpOwotICAgIAorCiAgICAgYm9vbCBkaWRQYXNz
VmFsaWRhdGlvbiA9IGZhbHNlOwogICAgIFBhcmtpbmdMb3Q6OlBhcmtSZXN1bHQgcmVzdWx0Owog
ICAgIHsKQEAgLTQxNyw1MSArNDM1LDQ1IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9t
aWNzRnVuY1dhaXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhCiAgICAg
ICAgICAgICBbXSAoKSB7IH0sCiAgICAgICAgICAgICBNb25vdG9uaWNUaW1lOjpub3coKSArIHRp
bWVvdXQpOwogICAgIH0KLSAgICBjb25zdCBjaGFyKiByZXN1bHRTdHJpbmc7CiAgICAgaWYgKCFk
aWRQYXNzVmFsaWRhdGlvbikKLSAgICAgICAgcmVzdWx0U3RyaW5nID0gIm5vdC1lcXVhbCI7Ci0g
ICAgZWxzZSBpZiAoIXJlc3VsdC53YXNVbnBhcmtlZCkKLSAgICAgICAgcmVzdWx0U3RyaW5nID0g
InRpbWVkLW91dCI7Ci0gICAgZWxzZQotICAgICAgICByZXN1bHRTdHJpbmcgPSAib2siOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHJlc3VsdFN0cmluZykpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy5ub3RFcXVhbFN0cmlu
ZygpKTsKKyAgICBpZiAoIXJlc3VsdC53YXNVbnBhcmtlZCkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MudGltZWRPdXRTdHJpbmcoKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3Mub2tTdHJpbmcoKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1dha2UsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXRvbWljc0Z1bmNOb3RpZnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAKLSAgICBKU0lu
dDMyQXJyYXkqIHR5cGVkQXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTSW50MzJBcnJheSo+KHZtLCBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXR5cGVkQXJyYXkpIHsKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlR5cGVkIGFycmF5IGZvciB3YWl0
L3dha2UgbXVzdCBiZSBhbiBJbnQzMkFycmF5LiJfcyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotICAgIAotICAgIGlmICghdHlwZWRBcnJh
eS0+aXNTaGFyZWQoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiVHlwZWQgYXJyYXkgZm9yIHdhaXQvd2FrZSBtdXN0IHdyYXAgYSBTaGFyZWRBcnJheUJ1
ZmZlci4iX3MpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwotICAgIH0KIAotICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0gdmFsaWRhdGVkQWNjZXNzSW5k
ZXgodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgdHlwZWRBcnJheSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpKTsKLSAgICAKLSAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBlZFZlY3Rv
cigpICsgYWNjZXNzSW5kZXg7Ci0gICAgCisgICAgYXV0byogdHlwZWRBcnJheUJ1ZmZlciA9IHZh
bGlkYXRlSW50ZWdlclR5cGVkQXJyYXk8VHlwZWRBcnJheU9wZXJhdGlvbk1vZGU6OldyaXRlPihn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0byogdHlwZWRBcnJheSA9IGpzQ2FzdDxKU0ludDMy
QXJyYXkqPih0eXBlZEFycmF5QnVmZmVyKTsKKworICAgIHVuc2lnbmVkIGFjY2Vzc0luZGV4ID0g
dmFsaWRhdGVBdG9taWNBY2Nlc3Modm0sIGdsb2JhbE9iamVjdCwgdHlwZWRBcnJheSwgY2FsbEZy
YW1lLT5hcmd1bWVudCgxKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KwogICAgIEpTVmFsdWUgY291bnRWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMik7CiAgICAg
dW5zaWduZWQgY291bnQgPSBVSU5UX01BWDsKICAgICBpZiAoIWNvdW50VmFsdWUuaXNVbmRlZmlu
ZWQoKSkgewotICAgICAgICBpbnQzMl90IGNvdW50SW50ID0gY291bnRWYWx1ZS50b0ludDMyKGds
b2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKSk7Ci0gICAgICAgIGNvdW50ID0gc3RkOjptYXgoMCwgY291
bnRJbnQpOworICAgICAgICBkb3VibGUgY291bnRJbnQgPSBjb3VudFZhbHVlLnRvSW50ZWdlck9y
SW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICAgICAgZG91YmxlIGNvdW50RG91YmxlID0gc3RkOjptYXgoMC4wLCBjb3Vu
dEludCk7CisgICAgICAgIGlmIChjb3VudERvdWJsZSA8IFVJTlRfTUFYKQorICAgICAgICAgICAg
Y291bnQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY291bnREb3VibGUpOwogICAgIH0KIAorICAg
IGlmICghdHlwZWRBcnJheS0+aXNTaGFyZWQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcigwKSk7CisKKyAgICBpbnQzMl90KiBwdHIgPSB0eXBlZEFycmF5LT50eXBl
ZFZlY3RvcigpICsgYWNjZXNzSW5kZXg7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihQYXJraW5nTG90Ojp1bnBhcmtDb3VudChwdHIsIGNvdW50KSkpOwogfQogCiBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNYb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIGF0b21pY09wZXJh
dGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkpOworICAgIHJl
dHVybiBhdG9taWNSZWFkTW9kaWZ5V3JpdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFhvckZ1
bmMoKSk7CiB9CiAKIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIpCkBAIC00
NzIsNyArNDg0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NB
ZGQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJn
c1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNW
YWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFy
Z3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgQWRkRnVuYygpKTsKKyAgICByZXR1cm4gYXRvbWlj
UmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFkZEZ1bmMoKSk7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQW5kLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTQ4MSw3
ICs0OTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0FuZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10g
PSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVl
OjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2
bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBBbmRGdW5jKCkpOworICAgIHJldHVybiBhdG9taWNSZWFk
TW9kaWZ5V3JpdGUodm0sIGdsb2JhbE9iamVjdCwgYXJncywgQW5kRnVuYygpKTsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGV4cGVjdGVkLCBF
bmNvZGVkSlNWYWx1ZSBuZXdWYWx1ZSkpCkBAIC00OTAsNyArNTAyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG8KICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwogICAgIEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNl
KSwgSlNWYWx1ZTo6ZGVjb2RlKGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGV4cGVjdGVkKSwgSlNW
YWx1ZTo6ZGVjb2RlKG5ld1ZhbHVlKX07Ci0gICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhB
cmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CisgICAg
cmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBDb21w
YXJlRXhjaGFuZ2VGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXRvbWljc0V4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNv
ZGVkSlNWYWx1ZSBvcGVyYW5kKSkKQEAgLTQ5OSw3ICs1MTEsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0V4Y2hhbmdlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZQogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBK
U1ZhbHVlOjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJl
dHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBFeGNo
YW5nZUZ1bmMoKSk7CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBhcmdzLCBFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzaXplKSkKQEAgLTUxNiw3ICs1
MjgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0xvYWQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtK
U1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRlY29kZShpbmRleCl9OwotICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBMb2FkRnVu
YygpKTsKKyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3Qs
IGFyZ3MsIExvYWRGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXRvbWljc09yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNW
YWx1ZSBvcGVyYW5kKSkKQEAgLTUyNSw3ICs1MzcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXRvbWljc09yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CiAgICAgSlNWYWx1ZSBhcmdzW10gPSB7SlNWYWx1ZTo6ZGVjb2RlKGJhc2UpLCBKU1ZhbHVl
OjpkZWNvZGUoaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUob3BlcmFuZCl9OwotICAgIHJldHVybiBh
dG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBPckZ1bmMoKSk7
CisgICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdz
LCBPckZ1bmMoKSk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9t
aWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IG9wZXJhbmQpKQpAQCAtNTM0LDcgKzU0Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BdG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
ICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRl
Y29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21p
Y09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFN0b3JlRnVuYygpKTsK
KyAgICByZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3Ms
IFN0b3JlRnVuYygpKTsKIH0KIAogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0
b21pY3NTdWIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IG9wZXJhbmQpKQpAQCAtNTQzLDcgKzU1NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BdG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
ICAgICBKU1ZhbHVlIGFyZ3NbXSA9IHtKU1ZhbHVlOjpkZWNvZGUoYmFzZSksIEpTVmFsdWU6OmRl
Y29kZShpbmRleCksIEpTVmFsdWU6OmRlY29kZShvcGVyYW5kKX07Ci0gICAgcmV0dXJuIGF0b21p
Y09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFN1YkZ1bmMoKSk7Cisg
ICAgcmV0dXJuIGF0b21pY1JlYWRNb2RpZnlXcml0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBT
dWJGdW5jKCkpOwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWlj
c1hvciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3Bl
cmFuZCkpCkBAIC01NTIsNyArNTY0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkF0b21pY3NYb3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAg
IEpTVmFsdWUgYXJnc1tdID0ge0pTVmFsdWU6OmRlY29kZShiYXNlKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKG9wZXJhbmQpfTsKLSAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgWG9yRnVuYygpKTsKKyAgICBy
ZXR1cm4gYXRvbWljUmVhZE1vZGlmeVdyaXRlKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIFhvckZ1
bmMoKSk7CiB9CiAKIElHTk9SRV9XQVJOSU5HU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IGQ5NWJkOWJmNjRkZmUzMGE0
NGM0MjJiMjIzOTI0YzFhYmEzOWZjZDUuLmMwZmEyMjg3NjQ0NDFhZDZhNjNhNGUwNmRjZjA0Y2I1
YTQ3YWI5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBKU0NfQ09NTU9OX0lERU5U
SUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAgIG1hY3JvKEFycmF5KSBcCiAg
ICAgbWFjcm8oQXJyYXlCdWZmZXIpIFwKKyAgICBtYWNybyhBdG9taWNzKSBcCiAgICAgbWFjcm8o
QllURVNfUEVSX0VMRU1FTlQpIFwKICAgICBtYWNybyhCaWdJbnQpIFwKICAgICBtYWNybyhCb29s
ZWFuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRl
eCA4OTZjMWNjZGE3ZGM4NDAwNTgwZjUyNjYzMTEyNThjNDRhMzY3YjdhLi4yNzI1M2UzNDllYjBk
MjJmMGFmYjJmMzAzNjcxMDFjNDRmOGI0MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTI2MSw2ICsyNjEsOCBAQCBjb25zdCBjaGFyKiBpbnRy
aW5zaWNOYW1lKEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiQXRvbWljc0lz
TG9ja0ZyZWVJbnRyaW5zaWMiOwogICAgIGNhc2UgQXRvbWljc0xvYWRJbnRyaW5zaWM6CiAgICAg
ICAgIHJldHVybiAiQXRvbWljc0xvYWRJbnRyaW5zaWMiOworICAgIGNhc2UgQXRvbWljc05vdGlm
eUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJBdG9taWNzTm90aWZ5SW50cmluc2ljIjsKICAg
ICBjYXNlIEF0b21pY3NPckludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJBdG9taWNzT3JJbnRy
aW5zaWMiOwogICAgIGNhc2UgQXRvbWljc1N0b3JlSW50cmluc2ljOgpAQCAtMjY5LDggKzI3MSw2
IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAg
ICAgcmV0dXJuICJBdG9taWNzU3ViSW50cmluc2ljIjsKICAgICBjYXNlIEF0b21pY3NXYWl0SW50
cmluc2ljOgogICAgICAgICByZXR1cm4gIkF0b21pY3NXYWl0SW50cmluc2ljIjsKLSAgICBjYXNl
IEF0b21pY3NXYWtlSW50cmluc2ljOgotICAgICAgICByZXR1cm4gIkF0b21pY3NXYWtlSW50cmlu
c2ljIjsKICAgICBjYXNlIEF0b21pY3NYb3JJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQXRv
bWljc1hvckludHJpbnNpYyI7CiAgICAgY2FzZSBQYXJzZUludEludHJpbnNpYzoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggYjM5YzU2NTEwNDUxYzEyZTlh
ZmJkOWYyODlhODViYTNiNzBkN2M0Ni4uNWNmMjUwZTk3MTM0N2IyNTY0OGVhNmM2ZDFkYjc1ZDk1
MjVhODFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmlu
c2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAg
LTE0NiwxMSArMTQ2LDExIEBAIGVudW0gSW50cmluc2ljIDogdWludDhfdCB7CiAgICAgQXRvbWlj
c0V4Y2hhbmdlSW50cmluc2ljLAogICAgIEF0b21pY3NJc0xvY2tGcmVlSW50cmluc2ljLAogICAg
IEF0b21pY3NMb2FkSW50cmluc2ljLAorICAgIEF0b21pY3NOb3RpZnlJbnRyaW5zaWMsCiAgICAg
QXRvbWljc09ySW50cmluc2ljLAogICAgIEF0b21pY3NTdG9yZUludHJpbnNpYywKICAgICBBdG9t
aWNzU3ViSW50cmluc2ljLAogICAgIEF0b21pY3NXYWl0SW50cmluc2ljLAotICAgIEF0b21pY3NX
YWtlSW50cmluc2ljLAogICAgIEF0b21pY3NYb3JJbnRyaW5zaWMsCiAgICAgUGFyc2VJbnRJbnRy
aW5zaWMsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXlCdWZmZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKaW5kZXggM2QzNjE4N2NiOGNiNzYxODU0NTQxNjA2Nzc1
OWU0YzI2OTNkZGI2MS4uNzBmMzE3ZjhlNjU5ZDFkMTViNGJiN2E3NDg2ZmZmM2Y4OTc1NTM1NiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlclByb3RvdHlwZS5jcHAKQEAgLTMzLDcyICszMyw4MiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGlj
ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3RvR2V0
dGVyRnVuY0J5dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOwogCi1K
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBhcnJheUJ1ZmZlclNsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgYXJyYXlCdWZmZXJWYWx1ZSwgSlNWYWx1ZSBzdGFydFZhbHVlLCBKU1ZhbHVl
IGVuZFZhbHVlLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIG1vZGUpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIEpTQXJyYXlCdWZmZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
QXJyYXlCdWZmZXIqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCF0aGlz
T2JqZWN0IHx8IHRoaXNPYmplY3QtPmltcGwoKS0+aXNTaGFyZWQoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlJlY2VpdmVyIG9mIHNsaWNl
IG11c3QgYmUgYW4gQXJyYXlCdWZmZXIuIl9zKTsKKyAgICBKU0FycmF5QnVmZmVyKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIGFycmF5QnVmZmVyVmFsdWUp
OworICAgIGlmICghdGhpc09iamVjdCB8fCAobW9kZSAhPSB0aGlzT2JqZWN0LT5pbXBsKCktPnNo
YXJpbmdNb2RlKCkpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBtYWtlU3RyaW5nKCJSZWNlaXZlciBtdXN0IGJlICJfcywgbW9kZSA9PSBBcnJh
eUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0ID8gIkFycmF5QnVmZmVyIl9zIDogIlNoYXJlZEFy
cmF5QnVmZmVyIl9zKSk7CisKKyAgICBpZiAobW9kZSA9PSBBcnJheUJ1ZmZlclNoYXJpbmdNb2Rl
OjpEZWZhdWx0ICYmIHRoaXNPYmplY3QtPmltcGwoKS0+aXNEZXRhY2hlZCgpKQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgaXMg
ZGV0YWNoZWQiX3MpOwogCi0gICAgZG91YmxlIGJlZ2luID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KS50b0ludGVnZXIoZ2xvYmFsT2JqZWN0KTsKKyAgICBkb3VibGUgYmVnaW4gPSBzdGFydFZhbHVl
LnRvSW50ZWdlck9ySW5maW5pdHkoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKKwogICAgIGRvdWJsZSBlbmQ7Ci0g
ICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAg
ZW5kID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVnZXIoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBpZiAoIWVuZFZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgZW5kID0g
ZW5kVmFsdWUudG9JbnRlZ2VyT3JJbmZpbml0eShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9IGVsc2UKICAg
ICAgICAgZW5kID0gdGhpc09iamVjdC0+aW1wbCgpLT5ieXRlTGVuZ3RoKCk7Ci0gICAgCisKKyAg
ICAvLyAyMy4gSWYgSXNEZXRhY2hlZEJ1ZmZlcihPKSBpcyB0cnVlLCB0aHJvdyBhIFR5cGVFcnJv
ciBleGNlcHRpb24uCisgICAgLy8gQ2hlY2sgZGV0YWNoIHN0YXR1cyBhZ2FpbiBzaW5jZSB0b0lu
dGVnZXJPckluZmluaXR5IGNhbiBoYXZlIHNpZGUgZWZmZWN0LgorICAgIGlmIChtb2RlID09IEFy
cmF5QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQgJiYgdGhpc09iamVjdC0+aW1wbCgpLT5pc0Rl
dGFjaGVkKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJSZWNlaXZlciBpcyBkZXRhY2hlZCJfcyk7CisKICAgICBhdXRvIG5ld0J1ZmZlciA9
IHRoaXNPYmplY3QtPmltcGwoKS0+c2xpY2UoYmVnaW4sIGVuZCk7CiAgICAgaWYgKCFuZXdCdWZm
ZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUpKTsKLSAgICAKKwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclN0cnVjdHVyZShuZXdCdWZmZXItPnNoYXJpbmdN
b2RlKCkpOwotICAgIAorCiAgICAgSlNBcnJheUJ1ZmZlciogcmVzdWx0ID0gSlNBcnJheUJ1ZmZl
cjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUobmV3QnVmZmVyKSk7Ci0gICAgCisKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLS8vIGh0dHA6Ly90YzM5Lmdp
dGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9zaG1lbS5odG1sI3NlYy1nZXQtYXJyYXlidWZm
ZXIucHJvdG90eXBlLmJ5dGVsZW5ndGgKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUJ1
ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJyYXlC
dWZmZXJCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJy
YXlCdWZmZXJWYWx1ZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtb2RlKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJy
YXkgYnVmZmVyIGJ1dCB3YXMgbm90IGFuIG9iamVjdCJfcyk7CiAKLSAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAg
aWYgKCF0aGlzT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGFuIGFycmF5IGJ1ZmZlciJfcyk7Ci0g
ICAgaWYgKHRoaXNPYmplY3QtPmlzU2hhcmVkKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJSZWNlaXZlciBzaG91bGQgbm90IGJlIGEgc2hh
cmVkIGFycmF5IGJ1ZmZlciJfcyk7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNBcnJheUJ1ZmZlcio+KHZtLCBhcnJheUJ1ZmZlclZhbHVlKTsKKyAgICBpZiAoIXRoaXNP
YmplY3QgfHwgKG1vZGUgIT0gdGhpc09iamVjdC0+aW1wbCgpLT5zaGFyaW5nTW9kZSgpKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVN0
cmluZygiUmVjZWl2ZXIgbXVzdCBiZSAiX3MsIG1vZGUgPT0gQXJyYXlCdWZmZXJTaGFyaW5nTW9k
ZTo6RGVmYXVsdCA/ICJBcnJheUJ1ZmZlciJfcyA6ICJTaGFyZWRBcnJheUJ1ZmZlciJfcykpOwor
CisgICAgaWYgKG1vZGUgPT0gQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCAmJiB0aGlz
T2JqZWN0LT5pbXBsKCktPmlzRGV0YWNoZWQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcigwKSk7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5pbXBsKCktPmJ5dGVMZW5ndGgoKSkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmltcGwoKS0+
Ynl0ZUxlbmd0aCgpKSk7CiB9CiAKLS8vIGh0dHA6Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0
X3NoYXJlZG1lbS9zaG1lbS5odG1sI1N0cnVjdHVyZWREYXRhLlNoYXJlZEFycmF5QnVmZmVyLnBy
b3RvdHlwZS5nZXRfYnl0ZUxlbmd0aAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFy
cmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1Zh
bHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVyIGJ1dCB3YXMg
bm90IGFuIG9iamVjdCJfcyk7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyU2xpY2UoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBjYWxs
RnJhbWUtPmFyZ3VtZW50KDEpLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0KTsKK30K
KworLy8gaHR0cDovL3RjMzkuZ2l0aHViLmlvL2VjbWFzY3JpcHRfc2hhcmVkbWVtL3NobWVtLmh0
bWwjc2VjLWdldC1hcnJheWJ1ZmZlci5wcm90b3R5cGUuYnl0ZWxlbmd0aAorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBy
ZXR1cm4gYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlz
VmFsdWUoKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCk7Cit9CiAKLSAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIHRoaXNWYWx1
ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGFuIGFycmF5IGJ1ZmZl
ciJfcyk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pc1NoYXJlZCgpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUmVjZWl2ZXIgc2hvdWxkIGJl
IGEgc2hhcmVkIGFycmF5IGJ1ZmZlciJfcyk7CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJTbGlj
ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OlNo
YXJlZCk7Cit9CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcih0aGlzT2JqZWN0LT5pbXBsKCktPmJ5dGVMZW5ndGgoKSkpKTsKKy8vIGh0dHA6
Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJlZG1lbS9zaG1lbS5odG1sI1N0cnVjdHVy
ZWREYXRhLlNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZS5nZXRfYnl0ZUxlbmd0aAorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxl
bmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK3sKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6U2hhcmVkKTsKIH0K
IAogY29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlCdWZmZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsKQEAg
LTExNCwxMiArMTI0LDE0IEBAIHZvaWQgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiB7CiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIAotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnNsaWNlLCBhcnJheUJ1ZmZlclByb3RvRnVu
Y1NsaWNlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgMik7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZyh2bSwgYXJyYXlCdWZmZXJTaGFyaW5nTW9k
ZU5hbWUoc2hhcmluZ01vZGUpKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBpZiAoc2hhcmluZ01vZGUgPT0gQXJyYXlCdWZm
ZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCkKKyAgICBpZiAoc2hhcmluZ01vZGUgPT0gQXJyYXlCdWZm
ZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCkgeworICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgYXJyYXlCdWZmZXJQcm90
b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIDIpOwogICAgICAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+Ynl0ZUxlbmd0aCwgYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNC
eXRlTGVuZ3RoLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpOwotICAgIGVsc2UKKyAgICB9IGVsc2UgeworICAgICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zbGljZSwgc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgICAgICBKU0NfTkFUSVZFX0dFVFRFUl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Ynl0ZUxlbmd0aCwgc2hhcmVkQXJy
YXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIH0KIH0KIAogSlNBcnJh
eUJ1ZmZlclByb3RvdHlwZSogSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5
QnVmZmVyU2hhcmluZ01vZGUgc2hhcmluZ01vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggYjVhOWJiOTM2OWY1MTZkNGUzNTk5NDU0MGQxYTRmODk5
MWE5MjI0ZS4uMmViMmFiNjNmYmMwNzI0NDQ5YTc1ZmZlNTMwZWNiMWE2YWIwNTU1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMjk0LDYgKzI5NCw3
IEBAIGNsYXNzIEpTVmFsdWUgewogICAgIC8vIEludGVnZXIgY29udmVyc2lvbnMuCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgZG91YmxlIHRvSW50ZWdlcihKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSB0b0ludGVnZXJQcmVzZXJ2ZU5hTihKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OworICAgIGRvdWJsZSB0b0ludGVnZXJPckluZmluaXR5KEpTR2xvYmFs
T2JqZWN0KikgY29uc3Q7CiAgICAgaW50MzJfdCB0b0ludDMyKEpTR2xvYmFsT2JqZWN0KikgY29u
c3Q7CiAgICAgdWludDMyX3QgdG9VSW50MzIoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICB1
aW50MzJfdCB0b0luZGV4KEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgY2hhciogZXJyb3JOYW1lKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oCmluZGV4IGZkNjgyYmJiNjM5NTY4ZGZlZDI1ZTRkYWE0YWMxZGFiOTc5MjZlZWYuLjcy
OTg3ZjA3ZGQ4YTU2ZDc0MTIwYmRmOGNlMTllOTYxNzgxYTg0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAtNzksNiArNzks
MTkgQEAgaW5saW5lIHVpbnQzMl90IEpTVmFsdWU6OnRvSW5kZXgoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgY2hhciogZXJyb3IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTQzo6dG9JbnQzMihkKSk7CiB9CiAKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNz
ZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eQorLy8gRklYTUU6IFdlIHdpbGwgcmVwbGFjZSB0b0ludGVn
ZXIgd2l0aCB0b0ludGVnZXJPckluZmluaXR5LiBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IHRvSW50
ZWdlck9ySW5maW5pdHkgd2lsbCBjb252ZXJ0IC0wIHRvICswLgorLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODY0MgoraW5saW5lIGRvdWJsZSBKU1ZhbHVlOjp0
b0ludGVnZXJPckluZmluaXR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7
CisgICAgaWYgKGlzSW50MzIoKSkKKyAgICAgICAgcmV0dXJuIGFzSW50MzIoKTsKKyAgICBkb3Vi
bGUgZCA9IHRvTnVtYmVyKGdsb2JhbE9iamVjdCk7CisgICAgaWYgKHN0ZDo6aXNuYW4oZCkgfHwg
ZCA9PSAwKQorICAgICAgICByZXR1cm4gMC4wOworICAgIHJldHVybiB0cnVuYyhkKTsKK30KKwog
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVSW50MzIoKSBjb25zdAogewogICAgIHJldHVybiBpc0lu
dDMyKCkgJiYgYXNJbnQzMigpID49IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVGdW5jdGlvbnMuaAppbmRleCAwY2NmYTAwMWE2ZjdjNDU5MThkYzAzZWY2OGU5YzRmZDQy
YzNmOGZhLi5mZjRjMDAyY2FiZDhmZTEzZmUzODA5OGY5YWIyNWE4Yjc0NDFkZWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTM4OCw3ICsz
ODgsNiBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoVk0mLAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgogQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNSZXZlcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiB7Ci0vLyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIC8vIDIy
LjIuMy4yMQpAQCAtNDA1LDcgKzQwNCw2IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShWTSYgdm0sIEpTR2xvCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdl
bmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotLy8gICAgVk0mIHZtID0g
Z2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICAvLyAyMi4yLjMuMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4NDhlNDAxNmJmNjExOGJiY2QwYWI2ZjA4
NzI5MzI5MjI4NTc0ODE2Li5iNWM1ZjE0NzA4ODYxMjY4ZjA5NDE5ZWI1MmRjZjU5Nzk0NjdmNGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblBy
b3RvdHlwZS5oIgogI2luY2x1ZGUgIkFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIkF0b21pY3NPYmplY3QuaCIK
ICNpbmNsdWRlICJCaWdJbnRDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJpZ0ludE9iamVjdC5o
IgogI2luY2x1ZGUgIkJpZ0ludFByb3RvdHlwZS5oIgpAQCAtODI4LDEwICs4MjksMTIgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgICAgIFtdIChjb25zdCBJbml0aWFs
aXplcjxKU0Z1bmN0aW9uPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlv
bjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIDEsIGluaXQudm0ucHJvcGVydHlOYW1lcy0+
cGFyc2VGbG9hdC5zdHJpbmcoKSwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQsIE5vSW50cmluc2ljKSk7
CiAgICAgICAgIH0pOwotICAgIAorCiAjaWYgRU5BQkxFKFNIQVJFRF9BUlJBWV9CVUZGRVIpCi0g
ICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTQXJyYXlCdWZm
ZXJQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIEFycmF5QnVm
ZmVyU2hhcmluZ01vZGU6OlNoYXJlZCkpOwotICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1
cmUuc2V0KHZtLCB0aGlzLCBKU0FycmF5QnVmZmVyOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBpZiAoT3B0aW9uczo6
dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBtX3NoYXJlZEFycmF5QnVmZmVyUHJv
dG90eXBlLnNldCh2bSwgdGhpcywgSlNBcnJheUJ1ZmZlclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0
aGlzLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6U2hhcmVkKSk7
CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0Fy
cmF5QnVmZmVyOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fc2hhcmVkQXJyYXlCdWZmZXJQ
cm90b3R5cGUuZ2V0KCkpKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIG1faXRlcmF0b3JQcm90b3R5
cGUuc2V0KHZtLCB0aGlzLCBJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBJdGVy
YXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpKTsKQEAgLTg5OSwxMCArOTAyLDEzIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6Omlu
aXQoVk0mIHZtKQogICAgIAogI2lmIEVOQUJMRShTSEFSRURfQVJSQVlfQlVGRkVSKQogICAgIEpT
U2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciogc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
ciA9IG51bGxwdHI7Ci0gICAgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA9IEpTU2hhcmVk
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1NoYXJlZEFycmF5QnVmZmVyQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCksIG1fc3BlY2llc0dldHRl
clNldHRlci5nZXQoKSk7Ci0gICAgbV9zaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZS0+cHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBz
aGFyZWRBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgQXRvbWljc09iamVjdCogYXRvbWljc09iamVj
dCA9IG51bGxwdHI7CisgICAgaWYgKE9wdGlvbnM6OnVzZVNoYXJlZEFycmF5QnVmZmVyKCkpIHsK
KyAgICAgICAgc2hhcmVkQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA9IEpTU2hhcmVkQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU1NoYXJlZEFycmF5QnVmZmVyQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1f
c2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUuZ2V0KCksIG1fc3BlY2llc0dldHRlclNldHRlci5n
ZXQoKSk7CisgICAgICAgIG1fc2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUtPnB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwgc2hhcmVk
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogCi0gICAgQXRvbWljc09iamVjdCogYXRvbWljc09iamVjdCA9
IEF0b21pY3NPYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgQXRvbWljc09iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOworICAgICAgICBhdG9t
aWNzT2JqZWN0ID0gQXRvbWljc09iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBBdG9taWNzT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7Cisg
ICAgfQogI2VuZGlmCiAKICNkZWZpbmUgQ1JFQVRFX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQ
RShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFt
ZSwgcHJvdG90eXBlQmFzZSwgZmVhdHVyZUZsYWcpIFwKQEAgLTk4Miw4ICs5ODgsMTAgQEAgY2Fw
aXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1
cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+UmVnRXhwLCByZWdFeHBDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCiAjaWYgRU5BQkxFKFNI
QVJFRF9BUlJBWV9CVUZGRVIpCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPlNoYXJlZEFycmF5QnVmZmVyLCBzaGFyZWRBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJBdG9taWNzIiksIGF0b21pY3NPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBpZiAoT3B0aW9uczo6dXNlU2hh
cmVkQXJyYXlCdWZmZXIoKSkgeworICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+U2hhcmVkQXJyYXlCdWZmZXIsIHNoYXJlZEFycmF5QnVmZmVy
Q29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pKTsKKyAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPkF0b21pY3MsIGF0b21pY3NPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICB9CiAjZW5kaWYKIAogI2RlZmluZSBQ
VVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHBy
b3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlLCBmZWF0dXJlRmxh
ZykgXApAQCAtMTIxNCw5ICsxMjIyLDE1IEBAIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yKiBs
b3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0YWxOYW1lCiAgICAg
bV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFu
dDo6aXNUeXBlZEFycmF5VmlldyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlND
ZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGlu
aXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcsIElzVHlwZWRBcnJheVZp
ZXdJbnRyaW5zaWMpKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6aXNTaGFyZWRUeXBlZEFycmF5Vmll
dyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgeworICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzU2hhcmVkVHlwZWRBcnJheVZpZXcpKTsKKyAgICAgICAgfSk7CiAgICAgbV9saW5r
VGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6aXNE
ZXRhY2hlZCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkg
ewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0lzRGV0YWNoZWQpKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNv
bnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6dHlwZWRBcnJh
eURlZmF1bHRDb21wYXJhdG9yKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0Nl
bGw+JiBpbml0KSB7CisgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5p
dC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygpLCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IpKTsKKyAgICAgICAgfSk7
CiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVD
b25zdGFudDo6dHlwZWRBcnJheVN1YmFycmF5Q3JlYXRlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJ
bml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0
aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciks
IDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpKTsK
ICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IDQ3MDMwMjllNmNjMjg5M2Qx
ZDRiMGNjNTU2ZWU1ZmQ1OTFiMDFhZTQuLmJmYjczMjlkNjBjOWIxZTQwZTBmMjIzOTdmOTJmYzdm
MGQ2MzE5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1
ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtODUsNiArODYsMTYgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVk
QXJyYXlWaWV3LCAoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbih2YWx1ZS5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyh2YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJ
bmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpKTsKIH0KIAor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1NoYXJl
ZFR5cGVkQXJyYXlWaWV3LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApOworICAgIGlmICghdmFsdWUuaXNDZWxsKCkpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CisgICAgaWYgKCFpc1R5cGVkVmlldyh2
YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZh
bHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNDYXN0PEpTQXJy
YXlCdWZmZXJWaWV3Kj4odmFsdWUpLT5pc1NoYXJlZCgpKSk7Cit9CisKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hlZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1Zh
bHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKQEAgLTkyLDYg
KzEwMyw1OCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0lzRGV0YWNoZWQsIChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KGFyZ3VtZW50KS0+aXNE
ZXRhY2hlZCgpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK3sKKyAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0
eXBlZGFycmF5JS5wcm90b3R5cGUuc29ydAorCisgICAgSlNWYWx1ZSB4ID0gY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIHkgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpOworCisgICAgaWYgKHguaXNOdW1iZXIoKSkgeworICAgICAgICBBU1NFUlQo
eS5pc051bWJlcigpKTsKKyAgICAgICAgaWYgKHguaXNJbnQzMigpICYmIHkuaXNJbnQzMigpKSB7
CisgICAgICAgICAgICBpbnQzMl90IHhJbnQzMiA9IHguYXNJbnQzMigpOworICAgICAgICAgICAg
aW50MzJfdCB5SW50MzIgPSB5LmFzSW50MzIoKTsKKyAgICAgICAgICAgIGlmICh4SW50MzIgPCB5
SW50MzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigt
MSkpOworICAgICAgICAgICAgaWYgKHhJbnQzMiA+IHlJbnQzMikKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpOworICAgICAgICB9CisKKyAgICAgICAgZG91Ymxl
IHhEb3VibGUgPSB4LmFzTnVtYmVyKCk7CisgICAgICAgIGRvdWJsZSB5RG91YmxlID0geS5hc051
bWJlcigpOworICAgICAgICBpZiAoc3RkOjppc25hbih4RG91YmxlKSAmJiBzdGQ6OmlzbmFuKHlE
b3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7
CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHhEb3VibGUpKQorICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcigxKSk7CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKHlEb3Vi
bGUpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtMSkpOwor
ICAgICAgICBpZiAoeERvdWJsZSA8IHlEb3VibGUpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CisgICAgICAgIGlmICh4RG91YmxlID4geURvdWJsZSkK
KyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOworICAgICAg
ICBpZiAoeERvdWJsZSA9PSAwICYmIHlEb3VibGUgPT0gMCkgeworICAgICAgICAgICAgaWYgKHN0
ZDo6c2lnbmJpdCh4RG91YmxlKSAmJiAhc3RkOjpzaWduYml0KHlEb3VibGUpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKKyAgICAgICAgICAg
IGlmICghc3RkOjpzaWduYml0KHhEb3VibGUpICYmIHN0ZDo6c2lnbmJpdCh5RG91YmxlKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKTsKKyAgICB9
CisgICAgQVNTRVJUKHguaXNCaWdJbnQoKSAmJiB5LmlzQmlnSW50KCkpOworICAgIHN3aXRjaCAo
Y29tcGFyZUJpZ0ludCh4LCB5KSkgeworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1
bHQ6OkVxdWFsOgorICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OlVuZGVmaW5l
ZDoKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgY2Fz
ZSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW46CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBh
cmlzb25SZXN1bHQ6Okxlc3NUaGFuOgorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKC0xKSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
MCkpOworfQorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlLmgKaW5kZXggNmNkN2IyYTBkNGRjMWM5YjJlOTUzN2JmMjdhYWEwODI3ZDc4Yjc1MC4uZDM1
MzBmZjZkNjE0ZWZlMGQyMjEyN2MzOGY5NjkwYzJjY2YyMGVmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
aApAQCAtNTIsNyArNTIsOSBAQCBjbGFzcyBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogfTsKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5Vmlldyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1NoYXJlZFR5cGVk
QXJyYXlWaWV3KTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzRGV0YWNoZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5
Vmlld1ByaXZhdGVGdW5jRGVmYXVsdENvbXBhcmF0b3IpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7CiBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgpOwogSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rv
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCAy
MjVlMjI0ODNkMDlhYzIwM2JjYmVmZTVjYmE4ZDc1MmYwYWZlMDcyLi5mODRkZWVjMWMyNmQ1MmNm
NzMzMTkwNGEyMDFkOGU4NGQ1YTM0YTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnNMaXN0LmgKQEAgLTQ5NCw2ICs0OTQsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBi
b29sIGNhblVzZUpJVENhZ2UoKTsKICAgICB2KEJvb2wsIHVzZVdlYWtSZWZzLCB0cnVlLCBOb3Jt
YWwsICJFeHBvc2UgdGhlIFdlYWtSZWYgY29uc3RydWN0b3IuIikgXAogICAgIHYoQm9vbCwgdXNl
SW50bERhdGVUaW1lRm9ybWF0RGF5UGVyaW9kLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIElu
dGwuRGF0ZVRpbWVGb3JtYXQgZGF5UGVyaW9kIGZlYXR1cmUuIikgXAogICAgIHYoQm9vbCwgdXNl
QXRNZXRob2QsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIGF0KCkgbWV0aG9kIG9uIEFycmF5
IGFuZCAlVHlwZWRBcnJheSUuIikgXAorICAgIHYoQm9vbCwgdXNlU2hhcmVkQXJyYXlCdWZmZXIs
IGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZUFycmF5QWxsb2NhdGlv
blByb2ZpbGluZywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCB1c2Ugb3VyIG5vcm1h
bCBhcnJheSBhbGxvY2F0aW9uIHByb2ZpbGluZy4gSWYgZmFsc2UsIHRoZSBhbGxvY2F0aW9uIHBy
b2ZpbGUgd2lsbCBhbHdheXMgY2xhaW0gdG8gYmUgdW5kZWNpZGVkLiIpIFwKICAgICB2KEJvb2ws
IGZvcmNlUG9seVByb3RvLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgY3JlYXRlX3RoaXMgd2ls
bCBhbHdheXMgY3JlYXRlIGFuIG9iamVjdCB3aXRoIGEgcG9seSBwcm90byBzdHJ1Y3R1cmUuIikg
XAogICAgIHYoQm9vbCwgZm9yY2VNaW5pVk1Nb2RlLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwg
aXQgd2lsbCBmb3JjZSBtaW5pIFZNIG1vZGUgb24uIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDAyNWY0YWI5MDA5ZjY3ODg0YWM2ZWEwNTZkMzRiMWNmNDhmM2YyZmEuLmVmMTYyNjIx
NzZhZmYwNTQyOTE3NmZlN2Q1YzgwMjRlMDM1OWQ5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5j
cHAKQEAgLTMzLDcgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1TaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlcjo6U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSB7IH0KK1NpbXBsZVR5
cGVkQXJyYXlDb250cm9sbGVyOjpTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcihib29sIGFsbG93
QXRvbWljc1dhaXQpCisgICAgOiBtX2FsbG93QXRvbWljc1dhaXQoYWxsb3dBdG9taWNzV2FpdCkK
K3sKK30KKwogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6On5TaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlcigpIHsgfQogCiBKU0FycmF5QnVmZmVyKiBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxl
cjo6dG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQXJyYXlCdWZmZXIqIG5hdGl2ZSkKQEAgLTU1LDcgKzU5LDcgQEAg
dm9pZCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6cmVnaXN0ZXJXcmFwcGVyKEpTR2xvYmFs
T2JqZWN0KiwgQXJyYXlCdWZmZXIqIG4KIAogYm9vbCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxl
cjo6aXNBdG9taWNzV2FpdEFsbG93ZWRPbkN1cnJlbnRUaHJlYWQoKQogewotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBtX2FsbG93QXRvbWljc1dhaXQ7CiB9CiAKIGJvb2wgU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVy
LmgKaW5kZXggZjdlNTBiZmIzZDEwYzcyMjcxNThiYmFhZjE0ZGE1OTk0ZGE5N2ZlMi4uMjE5Y2Fm
NDI2MzBlMTczNWExNWM5MTRkZGE1Y2RhYTM0ZGI2ODMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5o
CkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBTaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUeXBlZEFycmF5Q29udHJvbGxlciB7CiBwdWJs
aWM6Ci0gICAgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKTsKKyAgICBKU19FWFBPUlRfUFJJ
VkFURSBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcihib29sIGFsbG93QXRvbWljc1dhaXQgPSB0
cnVlKTsKICAgICB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSBmaW5hbDsKICAgICAKICAg
ICBKU0FycmF5QnVmZmVyKiB0b0pTKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBB
cnJheUJ1ZmZlciopIGZpbmFsOwpAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBTaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUeXBlZEFycmF5Q29udHJvbGxlciB7CiAgICAg
fTsKIAogICAgIEpTQXJyYXlCdWZmZXJPd25lciBtX293bmVyOworICAgIGJvb2wgbV9hbGxvd0F0
b21pY3NXYWl0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKaW5kZXggYWJkNDNkNTQ5
MWVkYmJkNzg0NWIxMTUyMzI4MTdmMjVlZDczNDJkYi4uMzZiZWVmNzJiZjkwOWU1ZmFhN2E4OWI5
OTA5NWM0NDY1NDExZmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU21hbGxTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
bWFsbFN0cmluZ3MuY3BwCkBAIC01OSw2ICs1OSw5IEBAIHZvaWQgU21hbGxTdHJpbmdzOjppbml0
aWFsaXplQ29tbW9uU3RyaW5ncyhWTSYgdm0pCiAgICAgaW5pdGlhbGl6ZSgmdm0sIG1fbnVsbE9i
amVjdFN0cmluZywgIltvYmplY3QgTnVsbF0iKTsKICAgICBpbml0aWFsaXplKCZ2bSwgbV91bmRl
ZmluZWRPYmplY3RTdHJpbmcsICJbb2JqZWN0IFVuZGVmaW5lZF0iKTsKICAgICBpbml0aWFsaXpl
KCZ2bSwgbV9ib3VuZFByZWZpeFN0cmluZywgImJvdW5kICIpOworICAgIGluaXRpYWxpemUoJnZt
LCBtX25vdEVxdWFsU3RyaW5nLCAibm90LWVxdWFsIik7CisgICAgaW5pdGlhbGl6ZSgmdm0sIG1f
dGltZWRPdXRTdHJpbmcsICJ0aW1lZC1vdXQiKTsKKyAgICBpbml0aWFsaXplKCZ2bSwgbV9va1N0
cmluZywgIm9rIik7CiAKICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpOwogfQpAQCAtNzYsNiAr
NzksOSBAQCB2b2lkIFNtYWxsU3RyaW5nczo6dmlzaXRTdHJvbmdSZWZlcmVuY2VzKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV9udWxsT2JqZWN0
U3RyaW5nKTsKICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKG1fdW5kZWZpbmVkT2JqZWN0
U3RyaW5nKTsKICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKG1fYm91bmRQcmVmaXhTdHJp
bmcpOworICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV9ub3RFcXVhbFN0cmluZyk7Cisg
ICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChtX3RpbWVkT3V0U3RyaW5nKTsKKyAgICB2aXNp
dG9yLmFwcGVuZFVuYmFycmllcmVkKG1fb2tTdHJpbmcpOwogfQogCiBTbWFsbFN0cmluZ3M6On5T
bWFsbFN0cmluZ3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U21hbGxTdHJpbmdzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmlu
Z3MuaAppbmRleCBkZWE4OGE4N2FlNGQyOTc5MDUzOWI1MGY5ZWM5Nzk2Njk5MWQ5NGZkLi41Y2Fl
ZDlhMjQ4YjE1NDQ4ZWY4NDUzODUxOWNjYjgxOWM1YjcyNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuaApAQCAtMTE3LDYgKzExNyw5IEBAIGNsYXNz
IFNtYWxsU3RyaW5ncyB7CiAgICAgSlNTdHJpbmcqIG51bGxPYmplY3RTdHJpbmcoKSBjb25zdCB7
IHJldHVybiBtX251bGxPYmplY3RTdHJpbmc7IH0KICAgICBKU1N0cmluZyogdW5kZWZpbmVkT2Jq
ZWN0U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV91bmRlZmluZWRPYmplY3RTdHJpbmc7IH0KICAg
ICBKU1N0cmluZyogYm91bmRQcmVmaXhTdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kUHJl
Zml4U3RyaW5nOyB9CisgICAgSlNTdHJpbmcqIG5vdEVxdWFsU3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9ub3RFcXVhbFN0cmluZzsgfQorICAgIEpTU3RyaW5nKiB0aW1lZE91dFN0cmluZygpIGNv
bnN0IHsgcmV0dXJuIG1fdGltZWRPdXRTdHJpbmc7IH0KKyAgICBKU1N0cmluZyogb2tTdHJpbmco
KSBjb25zdCB7IHJldHVybiBtX29rU3RyaW5nOyB9CiAKICAgICBib29sIG5lZWRzVG9CZVZpc2l0
ZWQoQ29sbGVjdGlvblNjb3BlIHNjb3BlKSBjb25zdAogICAgIHsKQEAgLTEzOCw2ICsxNDEsOSBA
QCBjbGFzcyBTbWFsbFN0cmluZ3MgewogICAgIEpTU3RyaW5nKiBtX251bGxPYmplY3RTdHJpbmcg
eyBudWxscHRyIH07CiAgICAgSlNTdHJpbmcqIG1fdW5kZWZpbmVkT2JqZWN0U3RyaW5nIHsgbnVs
bHB0ciB9OwogICAgIEpTU3RyaW5nKiBtX2JvdW5kUHJlZml4U3RyaW5nIHsgbnVsbHB0ciB9Owor
ICAgIEpTU3RyaW5nKiBtX25vdEVxdWFsU3RyaW5nIHsgbnVsbHB0ciB9OworICAgIEpTU3RyaW5n
KiBtX3RpbWVkT3V0U3RyaW5nIHsgbnVsbHB0ciB9OworICAgIEpTU3RyaW5nKiBtX29rU3RyaW5n
IHsgbnVsbHB0ciB9OwogICAgIEpTU3RyaW5nKiBtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3Nbc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nQ291bnRdIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9uZWVkc1Rv
QmVWaXNpdGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IDc2YWQyMzU5YTFhN2IzNGVmODk5ZDQyYjJlYzZl
NGQxMGIzZGMyOGQuLjA1YmQ2ODBjYWU2NzUyNGFmNDlkZTU5NzZkOTg2OTQwODUxYjA5YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtODMwLDcgKzgzMCw3IEBACiAjZW5kaWYKIAogLyog
RGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJu
cyBhcmUgbWl0aWdhdGVkLiAqLwotI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAw
CisjZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDEKIAogCiAjaWYgKChQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjU3NWE0MWZmY2I1NWM2MTM4YmZi
YTFlNDk0NjNkYTAyZmU2MjEwMi4uZmY3NWFhMGUxY2Y0OTRiYjdhMzVhMDUzNzg4MDE2ZmQ4Njlh
YTViYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTExLTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmUtZW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIGZvciBKU0Mgc2hl
bGwgYW5kIFRlc3RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbToKKyAgICAgICAgKGdldEZlYXR1cmVG
bGFncyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weToKKyAgICAgICAgKG1haW4pOgorCiAyMDIwLTExLTA0ICBKb25hdGhhbiBCZWRh
cmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0c2NtcHldIEFkZCBjaGVj
a291dCBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBt
IGIvVG9vbHMvU2NyaXB0cy90ZXN0MjYyL1J1bm5lci5wbQppbmRleCBlMjM2ZDA1OGExNDhmOWFi
MDNkYzVkN2U4NjFjMmI5ZDMyMzhmY2Q4Li5mYjFlNDU3ZThlOTllNGIwNTI2OGI0MWEzOWY5YTlk
YWJjNjczMmU3IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3Rlc3QyNjIvUnVubmVyLnBtCisr
KyBiL1Rvb2xzL1NjcmlwdHMvdGVzdDI2Mi9SdW5uZXIucG0KQEAgLTcwMyw2ICs3MDMsMTAgQEAg
c3ViIGdldEZlYXR1cmVGbGFncyB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoZ3JlcCAk
XyBlcSAnQ2FuQmxvY2tJc0ZhbHNlJywgQHskZGF0YS0+e2ZsYWdzfX0pIHsKKyAgICAgICAgJGZl
YXR1cmVGbGFncyAuPSAnIC0tY2FuLWJsb2NrLWlzLWZhbHNlJzsKKyAgICB9CisKICAgICByZXR1
cm4gJGZlYXR1cmVGbGFnczsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggM2M4YzBhYzcxNmM1ZGU1
MTRjYjdjNTFkOGNhNTZmZDk4NjNhMzM3NC4uYTViNGE0ZTA3MmVlODMzYTY4NTQ3NjUwYjRjODZi
NjY2MDZiYmRkNSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC04OCw2ICs4OCw4IEBAIGRlZiBtYWluKGFy
Z3YsIHN0ZG91dCwgc3RkZXJyKToKICAgICAgICAgc3RhY2tTaXplSW5CeXRlcyA9IGludCgxLjUg
KiAxMDI0ICogMTAyNCkKICAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsX2Vudl92YXIuYXBwZW5k
KCdKU0NfbWF4UGVyVGhyZWFkU3RhY2tVc2FnZT0nICsgc3RyKHN0YWNrU2l6ZUluQnl0ZXMpKQog
ICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxfZW52X3Zhci5hcHBlbmQoJ19fWFBDX0pTQ19tYXhQ
ZXJUaHJlYWRTdGFja1VzYWdlPScgKyBzdHIoc3RhY2tTaXplSW5CeXRlcykpCisgICAgICAgIG9w
dGlvbnMuYWRkaXRpb25hbF9lbnZfdmFyLmFwcGVuZCgnSlNDX3VzZVNoYXJlZEFycmF5QnVmZmVy
PTEnKQorICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxfZW52X3Zhci5hcHBlbmQoJ19fWFBDX0pT
Q191c2VTaGFyZWRBcnJheUJ1ZmZlcj0xJykKICAgICAgICAgcnVuX2RldGFpbHMgPSBydW4ocG9y
dCwgb3B0aW9ucywgYXJncywgc3RkZXJyKQogICAgICAgICBpZiBydW5fZGV0YWlscy5leGl0X2Nv
ZGUgIT0gLTEgYW5kIHJ1bl9kZXRhaWxzLnNraXBwZWRfYWxsX3Rlc3RzOgogICAgICAgICAgICAg
cmV0dXJuIHJ1bl9kZXRhaWxzLmV4aXRfY29kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMyMjhhYWRmZDlhZDgwYjk5MjRl
Y2E1ZWM4NjQ1MWY4NmFlMjY4MWQuLjcyYzhiNmY5YWFhYzQxZmM4NWQ4NDRjYjVmYjg1NDI3MjNj
ZTcyOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0xMS0wNiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZl
ciBmb3IgSlNDIHNoZWxsIGFuZCBUZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dDoKKwogMjAyMC0xMS0wNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXZWJBdXRobl0gRGV0ZXJtaW5lIGFuIEFBR1VJRCBmb3IgdGhlIHBsYXRmb3JtIGF1
dGhlbnRpY2F0b3JzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3NjgxNGY4NGM3
MDcxODZiNzQxMDEyZjFjMGIzNjZkMzM0N2QwYTk3Li4yMDRmMDAyNjdkNmQ0MzA3Yzg0YmY3MmVk
ZjkyYzdkZDZkNGU3YTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAyMC0xMS0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBmb3IgSlNDIHNoZWxsIGFuZCBU
ZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9y
ZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0y
L2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVz
LWZhaWx1cmUuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9y
ZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25z
dHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIw
MjAtMTEtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3aW5k
b3cuZXZlbnQgbWF5IGdldCBzZXQgb24gd3JvbmcgZ2xvYmFsIHdoZW4gZGlzcGF0Y2hpbmcgYW4g
ZXZlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdy
YXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVy
ZS5odHRwcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwt
Mi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJl
cy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggNzI1MWRiYzBkMTRkN2E5Zjli
MzBiMTA2ZmQ3YWFmOTY1MGI3ZTNlMC4uY2ZhM2UwMTc1YTI3YmVhMTA1NjY4ZDNjZThlNjI2OTcw
MmFlMTgxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRl
Z3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWls
dXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9y
ZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwzIEBACiAK
LUZBSUwgW1tDYW5CbG9ja11dIGluIGEgV2luZG93IGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9u
ICIoKSA9PiB7Ci0gICAgQXRvbWljcy53YWl0KHRhLCAwLCAwLCAxMCk7Ci0gIH0iIHRocmV3IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEF0b21pY3MiICgiUmVm
ZXJlbmNlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlw
ZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKK1BBU1MgW1tD
YW5CbG9ja11dIGluIGEgV2luZG93CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNz
aW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxp
c20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBw
YXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWph
dmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LnNlcnZp
Y2V3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGE0M2RmOGNmYWEyZGNlMjUxZmE4ZTc0NmEyNTQz
OWZjNWFiYmVlN2EuLjQ0YjJlY2Y1MjJiN2Y2MjIxYTZhOGUxNzhmMGExMmM4ZTk2ZWY3MDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0
aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5h
bnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Np
bmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlz
bS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDMgQEAKIAotRkFJTCBbW0NhbkJsb2NrXV0gaW4gYSBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IHsKLSAgICBBdG9taWNz
LndhaXQodGEsIDAsIDAsIDEwKTsKLSAgfSIgdGhyZXcgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogQXRvbWljcyIgKCJSZWZlcmVuY2VFcnJvciIpIGV4cGVjdGVk
IGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQorUEFTUyBbW0NhbkJsb2NrXV0gaW4gYSBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9y
ZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3By
b2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZv
cm1hbGlzbS9yZXF1aXJlcy1zdWNjZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGVi
ZGQyOGU3OWNmYmNiZGJmNDRiNDlmMDM3MGI2ODVlOWIyYjNlNmUuLjBiOTg2MGNjYzUzNDRmNTJk
ZDc4NDUyMTBiOWQ0MjNjMjVjMTQyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNz
aW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxp
c20vcmVxdWlyZXMtc3VjY2Vzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3Jp
cHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQt
YWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLXN1Y2Nlc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgW1tDYW5CbG9ja11dIGluIGEgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUgQ2FuJ3QgZmluZCB2YXJpYWJsZTogQXRvbWljcworRkFJTCBbW0NhbkJsb2Nr
XV0gaW4gYSBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBUeXBlZCBhcnJheSBmb3Igd2FpdC9u
b3RpZnkgbXVzdCB3cmFwIGEgU2hhcmVkQXJyYXlCdWZmZXIuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
Y29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvY29uc3RydWN0b3IuYW55LWV4cGVj
dGVkLnR4dAppbmRleCAwNDdkNWM1NmMxNGIwZTRkYmM0YzhmMGYwNTcyMzU1MzZlZmU1N2UzLi45
YTI0OTA1N2Y0OTgyNjQ5NDZmYmJlNjMxOGFmNzMyYmFkNWE3ZGVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5
L2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkt
ZXhwZWN0ZWQudHh0CkBAIC0yNSw1ICsyNSw1IEBAIEZBSUwgT3JkZXIgb2YgZXZhbHVhdGlvbiBm
b3IgZGVzY3JpcHRvciAod2l0aCBzaGFyZWQpIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0CiBQ
QVNTIFplcm8gaW5pdGlhbAogUEFTUyBOb24temVybyBpbml0aWFsCiBGQUlMIFN0cmF5IGFyZ3Vt
ZW50IFdlYkFzc2VtYmx5Lk1lbW9yeSBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50Ci1GQUlM
IFNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2J1
ZmZlclR5cGUucHJvdG90eXBlJykKK0ZBSUwgU2hhcmVkIG1lbW9yeSBhc3NlcnRfZXF1YWxzOiBw
cm90b3R5cGUgb2YgYnVmZmVyIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBTaGFyZWRBcnJheUJ1
ZmZlcl0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEFycmF5QnVmZmVyXSIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvY29uc3Ry
dWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggMDQ3ZDVjNTZjMTRiMGU0ZGJjNGM4
ZjBmMDU3MjM1NTM2ZWZlNTdlMy4uOWEyNDkwNTdmNDk4MjY0OTQ2ZmJiZTYzMThhZjczMmJhZDVh
N2RlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL21lbW9yeS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvbWVtb3J5L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0yNSw1
ICsyNSw1IEBAIEZBSUwgT3JkZXIgb2YgZXZhbHVhdGlvbiBmb3IgZGVzY3JpcHRvciAod2l0aCBz
aGFyZWQpIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0CiBQQVNTIFplcm8gaW5pdGlhbAogUEFT
UyBOb24temVybyBpbml0aWFsCiBGQUlMIFN0cmF5IGFyZ3VtZW50IFdlYkFzc2VtYmx5Lk1lbW9y
eSBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50Ci1GQUlMIFNoYXJlZCBtZW1vcnkgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2J1ZmZlclR5cGUucHJvdG90eXBlJykK
K0ZBSUwgU2hhcmVkIG1lbW9yeSBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2YgYnVmZmVyIGV4
cGVjdGVkIG9iamVjdCAiW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl0iIGJ1dCBnb3Qgb2JqZWN0
ICJbb2JqZWN0IEFycmF5QnVmZmVyXSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9wb3N0TWVzc2FnZV9ibG9jay5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMGFj
YTkwNzM2MzU3M2Y2NzUzZmEzNmRiNmQzYmVjMDlmNjM4MDM1My4uMGMyNWM0MTA3ZTY0MThiNmFm
N2FkZTEyYWI4ZDY3MzcyNGM3OGY3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Bvc3RNZXNzYWdlX2Jsb2NrLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvcG9zdE1lc3NhZ2VfYmxvY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAogCi1GQUlMIHBvc3RNZXNzYWdlIGFuZCBibG9jayBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRBcnJheUJ1ZmZlcgorUEFTUyBwb3N0TWVzc2FnZSBhbmQgYmxvY2sKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDMx
ZThhOTFiZjY1MDFhOGU3YTZjOGY3ZjQ4MmM5MGRkNjU5NGQyNTguLmM5YWQ3ZThiMDYwZTc1M2Q1
MDk1MDIwODJlYWQwYTI3OTQ3ZDU4NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9k
b20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTk1LDggKzk1LDEyIEBAIFBBU1MgICBBbmFs
eXNlck5vZGUuZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKG51bGwpIHRocmV3IFR5cGVFcnJvcjogIkFy
Z3VtZW50IDEgKCdhCiBQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5dGVGcmVxdWVuY3lEYXRhKG51
bGwpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9k
ZS5nZXRCeXRlRnJlcXVlbmN5RGF0YSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXki
LgogUEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRhKG51bGwpIHRocmV3
IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRGbG9h
dFRpbWVEb21haW5EYXRhIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KIFBB
U1MgICBBbmFseXNlck5vZGUuZ2V0Qnl0ZVRpbWVEb21haW5EYXRhKG51bGwpIHRocmV3IFR5cGVF
cnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRCeXRlVGltZURv
bWFpbkRhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5Ii4KK1BBU1MgICBBbmFs
eXNlck5vZGUuZ2V0RmxvYXRGcmVxdWVuY3lEYXRhKFNoYXJlZEFycmF5QnVmZmVyIHZpZXcpIHRo
cmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDEgKCdhcnJheScpIHRvIEFuYWx5c2VyTm9kZS5nZXRG
bG9hdEZyZXF1ZW5jeURhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMyQXJyYXkiLgor
UEFTUyAgIEFuYWx5c2VyTm9kZS5nZXRCeXRlRnJlcXVlbmN5RGF0YShTaGFyZWRBcnJheUJ1ZmZl
ciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAxICgnYXJyYXknKSB0byBBbmFseXNl
ck5vZGUuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBVaW50OEFy
cmF5Ii4KK1BBU1MgICBBbmFseXNlck5vZGUuZ2V0RmxvYXRUaW1lRG9tYWluRGF0YShTaGFyZWRB
cnJheUJ1ZmZlciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAxICgnYXJyYXknKSB0
byBBbmFseXNlck5vZGUuZ2V0RmxvYXRUaW1lRG9tYWluRGF0YSBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIEZsb2F0MzJBcnJheSIuCitQQVNTICAgQW5hbHlzZXJOb2RlLmdldEJ5dGVUaW1lRG9tYWlu
RGF0YShTaGFyZWRBcnJheUJ1ZmZlciB2aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAx
ICgnYXJyYXknKSB0byBBbmFseXNlck5vZGUuZ2V0Qnl0ZVRpbWVEb21haW5EYXRhIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgVWludDhBcnJheSIuCiBQQVNTICAgQXVkaW9CdWZmZXIuZ2V0Q2hhbm5l
bERhdGEoMikgdGhyZXcgSW5kZXhTaXplRXJyb3I6ICJJbmRleCBtdXN0IGJlIGxlc3MgdGhhbiBu
dW1iZXIgb2YgY2hhbm5lbHMuIi4KLVBBU1MgPCBbY3JlYXRlQW5hbHlzZXJdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDI0IGFzc2VydGlvbnMpCitQQVNTIDwgW2NyZWF0ZUFuYWx5c2Vy
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyOCBhc3NlcnRpb25zKQogUEFTUyA+IFtJ
bml0IHRlc3Qgbm9kZXNdIENyZWF0ZSB0ZXN0IG5vZGVzIGZvciB0aGUgZm9sbG93aW5nIHRlc3Rz
CiBQQVNTICAgbm9kZSA9IGNvbnRleHQuY3JlYXRlR2FpbigpIGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uLgogUEFTUyAgIG5vZGUyID0gY29udGV4dC5jcmVhdGVHYWluKCkgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24uCkBAIC0xMzEsNyArMTM1LDEwIEBAIFBBU1MgICBub2RlLmdldEZyZXF1
ZW5jeVJlc3BvbnNlKG5ldyBGbG9hdDMyQXJyYXkoMSksIG5ldyBGbG9hdDMyQXJyYXkoMSksIG5l
dyBGCiBQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZShudWxsLCBuZXcgRmxvYXQzMkFy
cmF5KDEpLCBuZXcgRmxvYXQzMkFycmF5KDEpKSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAx
ICgnZnJlcXVlbmN5SHonKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNl
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KIFBBU1MgICBub2RlLmdldEZy
ZXF1ZW5jeVJlc3BvbnNlKG5ldyBGbG9hdDMyQXJyYXkoMSksIG51bGwsIG5ldyBGbG9hdDMyQXJy
YXkoMSkpIHRocmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDIgKCdtYWdSZXNwb25zZScpIHRvIEJp
cXVhZEZpbHRlck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBGbG9hdDMyQXJyYXkiLgogUEFTUyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UobmV3IEZs
b2F0MzJBcnJheSgxKSwgbmV3IEZsb2F0MzJBcnJheSgxKSwgbnVsbCkgdGhyZXcgVHlwZUVycm9y
OiAiQXJndW1lbnQgMyAoJ3BoYXNlUmVzcG9uc2UnKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZy
ZXF1ZW5jeVJlc3BvbnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KLVBB
U1MgPCBbYmlxdWFkXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMp
CitQQVNTICAgbm9kZS5nZXRGcmVxdWVuY3lSZXNwb25zZShzaGFyZWRfdmlldywgbm9uc2hhcmVk
X3ZpZXcsIG5vbnNoYXJlZF92aWV3KSB0aHJldyBUeXBlRXJyb3I6ICJBcmd1bWVudCAxICgnZnJl
cXVlbmN5SHonKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZyZXF1ZW5jeVJlc3BvbnNlIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BBU1MgICBub2RlLmdldEZyZXF1ZW5j
eVJlc3BvbnNlKG5vbnNoYXJlZF92aWV3LCBzaGFyZWRfdmlldywgbm9uc2hhcmVkX3ZpZXcpIHRo
cmV3IFR5cGVFcnJvcjogIkFyZ3VtZW50IDIgKCdtYWdSZXNwb25zZScpIHRvIEJpcXVhZEZpbHRl
ck5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGbG9hdDMy
QXJyYXkiLgorUEFTUyAgIG5vZGUuZ2V0RnJlcXVlbmN5UmVzcG9uc2Uobm9uc2hhcmVkX3ZpZXcs
IG5vbnNoYXJlZF92aWV3LCBzaGFyZWRfdmlldykgdGhyZXcgVHlwZUVycm9yOiAiQXJndW1lbnQg
MyAoJ3BoYXNlUmVzcG9uc2UnKSB0byBCaXF1YWRGaWx0ZXJOb2RlLmdldEZyZXF1ZW5jeVJlc3Bv
bnNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRmxvYXQzMkFycmF5Ii4KK1BBU1MgPCBbYmlxdWFk
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA3IGFzc2VydGlvbnMpCiBQQVNTID4gW29m
ZmxpbmUtYXVkaW8tY29udGV4dF0gc3VwcG9ydHMgMzIgY2hhbm5lbHMKIFBBU1MgICBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgzMiwgMTAwLCBjb250ZXh0LnNhbXBsZVJhdGUpIGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLgogUEFTUyA8IFtvZmZsaW5lLWF1ZGlvLWNvbnRleHRdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmE0ZjlhNjliN2Y4MzNlYzZjYmFj
OTI5ZWUzNzJmNDc1NDcyNmM4Yy4uOGViYjI5YTYwOWI2ZDM4NWNiODdlMWNjMDhmOWU4NzVmOGZk
ZmI5OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0xMS0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgorCisgICAgICAgIFJlLWVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBmb3IgSlND
IHNoZWxsIGFuZCBUZXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTIwNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgdGVzdHMgdG8gYWxpZ24gdG8gdGhlIGxhdGVzdCBzcGVjLgorCisg
ICAgICAgICogc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9wdC5qczoKKyAgICAgICAgKHNob3Vs
ZFN1Y2NlZWQpOgorICAgICAgICAoaWR4Lm9mLnN0cmluZ19hcHBlYXJlZF9oZXJlLmEub2YuYXJy
YXlzLm0ub2YuYXRvbWljcyk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS5hLm9mLmFy
cmF5cy5tLm9mLmF0b21pY3MpOiBEZWxldGVkLgorICAgICAgICAqIHN0cmVzcy9TaGFyZWRBcnJh
eUJ1ZmZlci5qczoKKyAgICAgICAgKHNob3VsZFN1Y2NlZWQpOgorICAgICAgICAoU3ltYm9sKToK
KyAgICAgICAgKiBzdHJlc3MvYXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzOgorICAgICAgICAo
c2hvdWxkVGhyb3cpOgorICAgICAgICAoU3ltYm9sKToKKyAgICAgICAgKiBzdHJlc3MvYXRvbWlj
cy1hZGQtdWludDMyLmpzOgorICAgICAgICAqIHN0cmVzcy9hdG9taWNzLWtub3duLWludC11c2Uu
anM6CisgICAgICAgICogc3RyZXNzL2F0b21pY3MtbmVnLXplcm8uanM6CisgICAgICAgICogc3Ry
ZXNzL2F0b21pY3Mtc3RvcmUtcmV0dXJuLmpzOgorICAgICAgICAqIHN0cmVzcy9sYXJzLXNhYi13
b3JrZXJzLmpzOgorICAgICAgICAocmVzb3VyY2VzKToKKyAgICAgICAgKG5vdGlmeSk6CisgICAg
ICAgICh3YWtlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNzA0NzMuanM6
CisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTg5MzE3LmpzOgorICAgICAgICAqIHN0cmVzcy9z
aGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlp
bmcuanM6IEFkZGVkLgorICAgICAgICAoMjYyLmFnZW50LndhaXRVbnRpbCk6CisgICAgICAgICgy
NjIuYWdlbnQuc3RhcnQuMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QpOgorICAgICAgICAqIHRl
c3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoK
KwogMjAyMC0xMS0wMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYmFjayB0aGUgcmVtb3ZlZCBhc3NlcnRpb24gZnJvbSByMjY5MzM4IGFuZCBhZGQgYSB0
ZXN0CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci1vcHQuanMKaW5kZXggN2IyYzI3ZmY5
ZWExM2YxMmM1ZjRlNDk3MWI2YjY4YmNjZjQwMDEzYS4uNzhlMWRhYjcyZDA1YzI1N2RlZmJhYzdj
N2MyMmI5MTZhZmI5NTBmNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvU2hhcmVkQXJyYXlC
dWZmZXItb3B0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL1NoYXJlZEFycmF5QnVmZmVyLW9wdC5q
cwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgZHYgPSBuZXcgRGF0YVZpZXcobmV3IFNo
YXJlZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGk4YSA9IG5ldyBJbnQ4QXJyYXkobmV3IFNoYXJl
ZEFycmF5QnVmZmVyKDEyOCkpOwogdmFyIGkxNmEgPSBuZXcgSW50MTZBcnJheShuZXcgU2hhcmVk
QXJyYXlCdWZmZXIoMTI4KSk7CkBAIC0xMDQsNiArMTAzLDExIEBAIGZ1bmN0aW9uIHNob3VsZEZh
aWwoZiwgbmFtZSkKICAgICB0aHJvdyBuZXcgRXJyb3IoZiArICIgc3VjY2VlZGVkISIpOwogfQog
CitmdW5jdGlvbiBzaG91bGRTdWNjZWVkKGYpCit7CisgICAgZigpOworfQorCiBmb3IgKHZhciBi
YWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwgU3ltYm9sKCksIHt9LCAi
aGVsbG8iLCBkdiwgdThjYSwgZjMyYSwgZjY0YV0pIHsKICAgICBzaG91bGRGYWlsKCgpID0+IGdl
bmVyaWNBdG9taWNzLmdldCgiYWRkIikoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKICAgICBzaG91
bGRGYWlsKCgpID0+IGdlbmVyaWNBdG9taWNzLmdldCgiYW5kIikoYmFkLCAwLCAwKSwgVHlwZUVy
cm9yKTsKQEAgLTExNiw3ICsxMjAsNyBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAg
ICAgc2hvdWxkRmFpbCgoKSA9PiBnZW5lcmljQXRvbWljcy5nZXQoInhvciIpKGJhZCwgMCwgMCks
IFR5cGVFcnJvcik7CiB9CiAKLWZvciAodmFyIGlkeCBvZiBbLTEsIC0xMDAwMDAwMDAwMDAwLCAx
MDAwMCwgMTAwMDAwMDAwMDAwMDAsICJoZWxsbyJdKSB7Citmb3IgKHZhciBpZHggb2YgWy0xLCAt
MTAwMDAwMDAwMDAwMCwgMTAwMDAwMDAwMDAwMDAsIDEwMDAwXSkgewogICAgIGZvciAodmFyIGEg
b2YgYXJyYXlzKSB7CiAgICAgICAgIGZvciAodmFyIG0gb2YgW2F0b21pY3MuZ2V0KGEpLCBnZW5l
cmljQXRvbWljc10pIHsKICAgICAgICAgICAgIHNob3VsZEZhaWwoKCkgPT4gbS5nZXQoImFkZCIp
KGEsIGlkeCwgMCksIFJhbmdlRXJyb3IpOwpAQCAtMTMyLDMgKzEzNiwxOSBAQCBmdW5jdGlvbiBz
aG91bGRGYWlsKGYsIG5hbWUpCiAgICAgfQogfQogCitmb3IgKHZhciBpZHggb2YgWyJoZWxsbyJd
KSB7CisgICAgZm9yICh2YXIgYSBvZiBhcnJheXMpIHsKKyAgICAgICAgZm9yICh2YXIgbSBvZiBb
YXRvbWljcy5nZXQoYSksIGdlbmVyaWNBdG9taWNzXSkgeworICAgICAgICAgICAgc2hvdWxkU3Vj
Y2VlZCgoKSA9PiBtLmdldCgiYWRkIikoYSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRT
dWNjZWVkKCgpID0+IG0uZ2V0KCJhbmQiKShhLCBpZHgsIDApKTsKKyAgICAgICAgICAgIHNob3Vs
ZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImNvbXBhcmVFeGNoYW5nZSIpKGEsIGlkeCwgMCwgMCkpOwor
ICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgiZXhjaGFuZ2UiKShhLCBpZHgs
IDApKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoImxvYWQiKShhLCBp
ZHgpKTsKKyAgICAgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gbS5nZXQoIm9yIikoYSwgaWR4
LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJzdG9yZSIpKGEs
IGlkeCwgMCkpOworICAgICAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBtLmdldCgic3ViIiko
YSwgaWR4LCAwKSk7CisgICAgICAgICAgICBzaG91bGRTdWNjZWVkKCgpID0+IG0uZ2V0KCJ4b3Ii
KShhLCBpZHgsIDApKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvU2hhcmVkQXJyYXlCdWZmZXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJh
eUJ1ZmZlci5qcwppbmRleCAzYjI2OWE3NjUwZmFhYjdkOWMxMGI3NTc1ZTBlNGVlY2QwZDZjZmIz
Li4xZDcyN2NjYmUyOGZkNWFiM2JlODA3ODMyMDg3ZmE2OGIxNTk1YzdlIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9TaGFyZWRBcnJheUJ1ZmZlci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9T
aGFyZWRBcnJheUJ1ZmZlci5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiAvLyBUaGlzIGlz
IGEgYmFzaWMgdGVzdCBvZiBTaGFyZWRBcnJheUJ1ZmZlciBBUEkgYXMgd2UgdW5kZXJzdGFuZCBp
dC4KIAogaWYgKFNoYXJlZEFycmF5QnVmZmVyID09IEFycmF5QnVmZmVyKQpAQCAtMzUsMTEgKzM0
LDExIEBAIGZ1bmN0aW9uIGNoZWNrQXRvbWljcyhuYW1lLCBjb3VudCkKIGNoZWNrQXRvbWljcygi
ZXhjaGFuZ2UiLCAzKTsKIGNoZWNrQXRvbWljcygiaXNMb2NrRnJlZSIsIDEpOwogY2hlY2tBdG9t
aWNzKCJsb2FkIiwgMik7CitjaGVja0F0b21pY3MoIm5vdGlmeSIsIDMpOwogY2hlY2tBdG9taWNz
KCJvciIsIDMpOwogY2hlY2tBdG9taWNzKCJzdG9yZSIsIDMpOwogY2hlY2tBdG9taWNzKCJzdWIi
LCAzKTsKIGNoZWNrQXRvbWljcygid2FpdCIsIDQpOwotY2hlY2tBdG9taWNzKCJ3YWtlIiwgMyk7
CiBjaGVja0F0b21pY3MoInhvciIsIDMpOwogCiAvLyBUaGVzZSBzaG91bGQgYWxsIHN1Y2NlZWQu
CkBAIC02Niw2ICs2NSwxMSBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAgICAgdGhy
b3cgbmV3IEVycm9yKGYgKyAiIHN1Y2NlZWRlZCEiKTsKIH0KIAorZnVuY3Rpb24gc2hvdWxkU3Vj
Y2VlZChmKQoreworICAgIGYoKTsKK30KKwogZm9yIChiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFs
c2UsIHRydWUsIDEsIDAuNSwgU3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgdThjYSwgZjMyYSwg
ZjY0YV0pIHsKICAgICBzaG91bGRGYWlsKCgpID0+IEF0b21pY3MuYWRkKGJhZCwgMCwgMCksIFR5
cGVFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLmFuZChiYWQsIDAsIDApLCBU
eXBlRXJyb3IpOwpAQCAtNzksMTEgKzgzLDExIEBAIGZ1bmN0aW9uIHNob3VsZEZhaWwoZiwgbmFt
ZSkKIH0KIAogZm9yIChiYWQgb2YgW3ZvaWQgMCwgbnVsbCwgZmFsc2UsIHRydWUsIDEsIDAuNSwg
U3ltYm9sKCksIHt9LCAiaGVsbG8iLCBkdiwgaThhLCBpMTZhLCB1OGEsIHU4Y2EsIHUxNmEsIHUz
MmEsIGYzMmEsIGY2NGFdKSB7CisgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLm5vdGlmeShi
YWQsIDAsIDApLCBUeXBlRXJyb3IpOwogICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy53YWl0
KGJhZCwgMCwgMCksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndh
a2UoYmFkLCAwLCAwKSwgVHlwZUVycm9yKTsKIH0KIAotZm9yIChpZHggb2YgWy0xLCAtMTAwMDAw
MDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwLCAiaGVsbG8iXSkgeworZm9yIChpZHggb2Yg
Wy0xLCAtMTAwMDAwMDAwMDAwMCwgMTAwMDAsIDEwMDAwMDAwMDAwMDAwXSkgewogICAgIGZvciAo
YSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUzMmFdKSB7CiAgICAgICAgIHNob3Vs
ZEZhaWwoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CiAgICAgICAg
IHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CkBA
IC05NSw4ICs5OSwyNCBAQCBmdW5jdGlvbiBzaG91bGRGYWlsKGYsIG5hbWUpCiAgICAgICAgIHNo
b3VsZEZhaWwoKCkgPT4gQXRvbWljcy5zdWIoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7CiAgICAg
ICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy54b3IoYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7
CiAgICAgfQorICAgIHNob3VsZEZhaWwoKCkgPT4gQXRvbWljcy5ub3RpZnkoaTMyYSwgaWR4LCAw
KSwgUmFuZ2VFcnJvcik7CiAgICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndhaXQoaTMyYSwg
aWR4LCAwKSwgUmFuZ2VFcnJvcik7Ci0gICAgc2hvdWxkRmFpbCgoKSA9PiBBdG9taWNzLndha2Uo
aTMyYSwgaWR4LCAwKSwgUmFuZ2VFcnJvcik7Cit9CisKK2ZvciAoaWR4IG9mIFsiaGVsbG8iXSkg
eworICAgIGZvciAoYSBvZiBbaThhLCBpMTZhLCBpMzJhLCB1OGEsIHUxNmEsIHUzMmFdKSB7Cisg
ICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hZGQoYSwgaWR4LCAwKSk7CisgICAg
ICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5hbmQoYSwgaWR4LCAwKSk7CisgICAgICAg
IHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5jb21wYXJlRXhjaGFuZ2UoYSwgaWR4LCAwLCAw
KSk7CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5leGNoYW5nZShhLCBpZHgs
IDApKTsKKyAgICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLmxvYWQoYSwgaWR4KSk7
CisgICAgICAgIHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy5vcihhLCBpZHgsIDApKTsKKyAg
ICAgICAgc2hvdWxkU3VjY2VlZCgoKSA9PiBBdG9taWNzLnN0b3JlKGEsIGlkeCwgMCkpOworICAg
ICAgICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Muc3ViKGEsIGlkeCwgMCkpOworICAgICAg
ICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3MueG9yKGEsIGlkeCwgMCkpOworICAgIH0KKyAg
ICBzaG91bGRTdWNjZWVkKCgpID0+IEF0b21pY3Mubm90aWZ5KGkzMmEsIGlkeCwgMCkpOworICAg
IHNob3VsZFN1Y2NlZWQoKCkgPT4gQXRvbWljcy53YWl0KGkzMmEsIGlkeCwgMCwgMSkpOwogfQog
CiBmdW5jdGlvbiBydW5BdG9taWMoYXJyYXksIGluZGV4LCBpbml0LCBuYW1lLCBhcmdzLCBleHBl
Y3RlZFJlc3VsdCwgZXhwZWN0ZWRPdXRjb21lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVy
LWJ5dGUtbGVuZ3RoLmpzCmluZGV4IDc4YTcyZjkyMzJjZDA4ZTc1ZWEyNzk0MjE0ZDdjMmY2OTEz
MmVlNWYuLjg5M2FmNmM0NTJiOTNjZGZjNjBjMGIwN2YwNjA1YzU0ZjI2OWZiMjIgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMKQEAgLTEsNCArMSwzIEBACi0v
L0Agc2tpcAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKIHsKICAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKQEAgLTQyLDI1ICs0MSwyNSBAQCBmdW5jdGlvbiBzaG91bGRU
aHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpCiAKICAgICBzaG91bGRUaHJvdygoKSA9PiB7CiAgICAg
ICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQXJyYXlCdWZmZXIucHJvdG90eXBl
LCAnYnl0ZUxlbmd0aCcpLmdldC5jYWxsKHNoYXJlZEFycmF5QnVmZmVyKTsKLSAgICB9LCBgVHlw
ZUVycm9yOiBSZWNlaXZlciBzaG91bGQgbm90IGJlIGEgc2hhcmVkIGFycmF5IGJ1ZmZlcmApOwor
ICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIG11c3QgYmUgQXJyYXlCdWZmZXJgKTsKIAogICAg
IHNob3VsZFRocm93KCgpID0+IHsKICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihTaGFyZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUsICdieXRlTGVuZ3RoJykuZ2V0LmNhbGwo
YXJyYXlCdWZmZXIpOwotICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIHNob3VsZCBiZSBhIHNo
YXJlZCBhcnJheSBidWZmZXJgKTsKKyAgICB9LCBgVHlwZUVycm9yOiBSZWNlaXZlciBtdXN0IGJl
IFNoYXJlZEFycmF5QnVmZmVyYCk7CiAKICAgICBmb3IgKGxldCB2YWx1ZSBvZiBbIDAsIHRydWUs
ICJDb2NvYSIsIG51bGwsIHVuZGVmaW5lZCwgU3ltYm9sKCJDYXBwdWNjaW5vIikgXSkgewogICAg
ICAgICBzaG91bGRUaHJvdygoKSA9PiB7CiAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEFycmF5QnVmZmVyLnByb3RvdHlwZSwgJ2J5dGVMZW5ndGgnKS5nZXQuY2Fs
bCh2YWx1ZSk7Ci0gICAgICAgIH0sIGBUeXBlRXJyb3I6IFJlY2VpdmVyIHNob3VsZCBiZSBhbiBh
cnJheSBidWZmZXIgYnV0IHdhcyBub3QgYW4gb2JqZWN0YCk7CisgICAgICAgIH0sIGBUeXBlRXJy
b3I6IFJlY2VpdmVyIG11c3QgYmUgQXJyYXlCdWZmZXJgKTsKICAgICAgICAgc2hvdWxkVGhyb3co
KCkgPT4gewogICAgICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTaGFy
ZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUsICdieXRlTGVuZ3RoJykuZ2V0LmNhbGwodmFsdWUpOwot
ICAgICAgICB9LCBgVHlwZUVycm9yOiBSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVy
IGJ1dCB3YXMgbm90IGFuIG9iamVjdGApOworICAgICAgICB9LCBgVHlwZUVycm9yOiBSZWNlaXZl
ciBtdXN0IGJlIFNoYXJlZEFycmF5QnVmZmVyYCk7CiAgICAgfQogCiAgICAgc2hvdWxkVGhyb3co
KCkgPT4gewogICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEFycmF5QnVm
ZmVyLnByb3RvdHlwZSwgJ2J5dGVMZW5ndGgnKS5nZXQuY2FsbCh7fSk7Ci0gICAgfSwgYFR5cGVF
cnJvcjogUmVjZWl2ZXIgc2hvdWxkIGJlIGFuIGFycmF5IGJ1ZmZlcmApOworICAgIH0sIGBUeXBl
RXJyb3I6IFJlY2VpdmVyIG11c3QgYmUgQXJyYXlCdWZmZXJgKTsKICAgICBzaG91bGRUaHJvdygo
KSA9PiB7CiAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU2hhcmVkQXJy
YXlCdWZmZXIucHJvdG90eXBlLCAnYnl0ZUxlbmd0aCcpLmdldC5jYWxsKHt9KTsKLSAgICB9LCBg
VHlwZUVycm9yOiBSZWNlaXZlciBzaG91bGQgYmUgYW4gYXJyYXkgYnVmZmVyYCk7CisgICAgfSwg
YFR5cGVFcnJvcjogUmVjZWl2ZXIgbXVzdCBiZSBTaGFyZWRBcnJheUJ1ZmZlcmApOwogfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1hZGQtdWludDMyLmpzIGIvSlNUZXN0cy9z
dHJlc3MvYXRvbWljcy1hZGQtdWludDMyLmpzCmluZGV4IDliMDA4ZTE1NDM5MjMxZjAzMjdjZmJh
MTk1ZGUzNDZlM2U0OWFhNmMuLmQ5N2RkZGI0Njk3MWMwMWI2NzI3ZWE2NWQ3NDY0ZjM5NWFhODQx
YjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtYWRkLXVpbnQzMi5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLWFkZC11aW50MzIuanMKQEAgLTEsNCArMSwzIEBACi0v
L0Agc2tpcAogdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcig0KTsKIHZhciBhID0gbmV3
IFVpbnQzMkFycmF5KHNhYik7CiB2YXIgcmVzdWx0ID0gQXRvbWljcy5hZGQoYSwgMCwgNDAwMDAw
MDAwMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLWtub3duLWludC11c2Uu
anMgYi9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLWtub3duLWludC11c2UuanMKaW5kZXggODA3MzFl
YTdjODI0YTdkMmNmZmM2MjkzYTllZjVjMjdiNDFlMmViMi4uNGUwYTk2YzE1NDNjMmYwNTRiYmQy
NGU2OWJmZWQ3OWY5YjFjODM0NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1r
bm93bi1pbnQtdXNlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3Mta25vd24taW50LXVz
ZS5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiAvLyBCcmVhayB0eXBlIGluZmVyZW5jZS4K
IHZhciBvID0ge2Y6IDQyLjV9OwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hdG9taWNz
LW5lZy16ZXJvLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXRvbWljcy1uZWctemVyby5qcwppbmRleCAw
YThlNTJjN2JmYTg5MjNkNzI3MTE1MWE5MTRiMmFmZmI1YjMwMDNhLi5mOTdhYmZiNTQzNTVkZTJi
OTA0YTBhNmZlZjRlZWUwYzlhY2ExODFmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hdG9t
aWNzLW5lZy16ZXJvLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2F0b21pY3MtbmVnLXplcm8uanMK
QEAgLTEsNCArMSwzIEBACi0vL0Agc2tpcAogdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZl
cig0KTsKIHZhciBhID0gbmV3IEludDMyQXJyYXkoc2FiKTsKIEF0b21pY3MuYWRkKGEsIC0wLCAx
KTsgLy8gVGhpcyBzaG91bGQgbm90IHRocm93LgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YXRvbWljcy1zdG9yZS1yZXR1cm4uanMgYi9KU1Rlc3RzL3N0cmVzcy9hdG9taWNzLXN0b3JlLXJl
dHVybi5qcwppbmRleCA3ODdhMWZkMjQzMTVhMzBiYjgwNDQ1ODZmYWI0ZWM3MDE0ZThkZGUxLi4w
ODI1NjNmMzQxMGI3M2ViZDdkYjZhMzNjZjVlNTgwMTBiNzE1YTQ4IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9hdG9taWNzLXN0b3JlLXJldHVybi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9h
dG9taWNzLXN0b3JlLXJldHVybi5qcwpAQCAtMSw0ICsxLDMgQEAKLS8vQCBza2lwCiB2YXIgc2Fi
ID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKDEpOwogdmFyIGEgPSBuZXcgSW50OEFycmF5KHNhYik7
CiB2YXIgcmVzdWx0ID0gQXRvbWljcy5zdG9yZShhLCAwLCAxMDAwKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2xhcnMtc2FiLXdvcmtlcnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9sYXJzLXNh
Yi13b3JrZXJzLmpzCmluZGV4IGJhZTQwMGY3MjA4NGVhMjVmMzFlNGJjNDQ0NGNjMzA1MzJjZDJk
MzIuLjdkMWNhZGQzMmFmNDhmYzBkNDVjOTUzYzUxYjg1NGJmNzJlODI4YmIgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2xhcnMtc2FiLXdvcmtlcnMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
bGFycy1zYWItd29ya2Vycy5qcwpAQCAtMSw1ICsxLDMgQEAKLS8vQCBza2lwCi0KIHZhciBzYWIg
PSBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoMTAwICogNCk7CiAKIHZhciBtZW1vcnkgPSBuZXcgSW50
MzJBcnJheShzYWIpOwpAQCAtMTQsNyArMTIsNyBAQCBmdW5jdGlvbiBzdGFydFdvcmtlcihjb2Rl
KQogfQogCiByZXNvdXJjZXMgPSBgCi1mdW5jdGlvbiB3YWl0KG1lbW9yeSwgaW5kZXgsIHdhaXRD
b25kaXRpb24sIHdha2VDb25kaXRpb24pCitmdW5jdGlvbiB3YWl0KG1lbW9yeSwgaW5kZXgsIHdh
aXRDb25kaXRpb24sIG5vdGlmeUNvbmRpdGlvbikKIHsKICAgICB3aGlsZSAobWVtb3J5W2luZGV4
XSA9PSB3YWl0Q29uZGl0aW9uKSB7CiAgICAgICAgIHZhciByZXN1bHQgPSBBdG9taWNzLndhaXQo
bWVtb3J5LCBpbmRleCwgd2FpdENvbmRpdGlvbik7CkBAIC0yOCwyMyArMjYsMjMgQEAgZnVuY3Rp
b24gd2FpdChtZW1vcnksIGluZGV4LCB3YWl0Q29uZGl0aW9uLCB3YWtlQ29uZGl0aW9uKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHZhbHVlID0gbWVtb3J5W2lu
ZGV4XTsKLSAgICAgICAgaWYgKHZhbHVlICE9IHdha2VDb25kaXRpb24pIHsKKyAgICAgICAgaWYg
KHZhbHVlICE9IG5vdGlmeUNvbmRpdGlvbikgewogICAgICAgICAgICAgJC5hZ2VudC5yZXBvcnQo
IkVycm9yOiB3YWl0IHJldHVybmVkIG5vdC1lcXVhbCBidXQgdGhlIG1lbW9yeSBoYXMgYSBiYWQg
dmFsdWU6ICIgKyB2YWx1ZSk7CiAgICAgICAgICAgICAkLmFnZW50LnJlcG9ydCgiZXJyb3IiKTsK
ICAgICAgICAgfQogICAgIH0KICAgICB2YXIgdmFsdWUgPSBtZW1vcnlbaW5kZXhdOwotICAgIGlm
ICh2YWx1ZSAhPSB3YWtlQ29uZGl0aW9uKSB7CisgICAgaWYgKHZhbHVlICE9IG5vdGlmeUNvbmRp
dGlvbikgewogICAgICAgICAkLmFnZW50LnJlcG9ydCgiRXJyb3I6IGRvbmUgd2FpdGluZyBidXQg
dGhlIG1lbW9yeSBoYXMgYSBiYWQgdmFsdWU6ICIgKyB2YWx1ZSk7CiAgICAgICAgICQuYWdlbnQu
cmVwb3J0KCJlcnJvciIpOwogICAgIH0KIH0KIAotZnVuY3Rpb24gd2FrZShtZW1vcnksIGluZGV4
KQorZnVuY3Rpb24gbm90aWZ5KG1lbW9yeSwgaW5kZXgpCiB7Ci0gICAgdmFyIHJlc3VsdCA9IEF0
b21pY3Mud2FrZShtZW1vcnksIGluZGV4LCAxKTsKKyAgICB2YXIgcmVzdWx0ID0gQXRvbWljcy5u
b3RpZnkobWVtb3J5LCBpbmRleCwgMSk7CiAgICAgaWYgKHJlc3VsdCAhPSAwICYmIHJlc3VsdCAh
PSAxKSB7Ci0gICAgICAgICQuYWdlbnQucmVwb3J0KCJFcnJvcjogYmFkIHJlc3VsdCBmcm9tIHdh
a2U6ICIgKyByZXN1bHQpOworICAgICAgICAkLmFnZW50LnJlcG9ydCgiRXJyb3I6IGJhZCByZXN1
bHQgZnJvbSBub3RpZnk6ICIgKyByZXN1bHQpOwogICAgICAgICAkLmFnZW50LnJlcG9ydCgiZXJy
b3IiKTsKICAgICB9CiB9CkBAIC02Niw3ICs2NCw3IEBAIGZ1bmN0aW9uIHdha2UobWVtb3J5LCBp
bmRleCkKICAgICAgICAgJC5hZ2VudC5yZXBvcnQoIjE6IEl0IHN0YXJ0ZWQhIik7CiAgICAgICAg
IAogICAgICAgICBtZW1vcnlbc2hvdWxkR29JZHhdID0gMTsKLSAgICAgICAgd2FrZShtZW1vcnks
IHNob3VsZEdvSWR4KTsKKyAgICAgICAgbm90aWZ5KG1lbW9yeSwgc2hvdWxkR29JZHgpOwogICAg
ICAgICAKICAgICAgICAgd2FpdChtZW1vcnksIGRpZEVuZElkeCwgMCwgMSk7CiAgICAgICAgIApA
QCAtODgsMTIgKzg2LDEyIEBAIGZ1bmN0aW9uIHdha2UobWVtb3J5LCBpbmRleCkKICAgICAgICAg
JC5hZ2VudC5yZXBvcnQoIjI6IE1lbW9yeTogIiArIG1lbW9yeSk7CiAgICAgICAgIAogICAgICAg
ICBBdG9taWNzLnN0b3JlKG1lbW9yeSwgZGlkU3RhcnRJZHgsIDEpOwotICAgICAgICB3YWtlKG1l
bW9yeSwgZGlkU3RhcnRJZHgpOworICAgICAgICBub3RpZnkobWVtb3J5LCBkaWRTdGFydElkeCk7
CiAgICAgICAgIAogICAgICAgICB3YWl0KG1lbW9yeSwgc2hvdWxkR29JZHgsIDAsIDEpOwogICAg
ICAgICAKICAgICAgICAgQXRvbWljcy5zdG9yZShtZW1vcnksIGRpZEVuZElkeCwgMSk7Ci0gICAg
ICAgIHdha2UobWVtb3J5LCBkaWRFbmRJZHgsIDEpOworICAgICAgICBub3RpZnkobWVtb3J5LCBk
aWRFbmRJZHgsIDEpOwogICAgICAgICAKICAgICAgICAgJC5hZ2VudC5yZXBvcnQoIjI6IE1lbW9y
eTogIiArIG1lbW9yeSk7CiAgICAgICAgICQuYWdlbnQucmVwb3J0KCJkb25lIik7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MDQ3My5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jl
Z3Jlc3MtMTcwNDczLmpzCmluZGV4IGFhOWFhYmE4ZGM1ZTEwMjljZDc3MWQzOGE3YTFmN2I0NmJh
ZWMyNDAuLjE2ZTE2ZDc0NGIyYTFhNWRhMjZhNTllM2I3YjA0ZTM5Mzk5NGJkMDIgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTcwNDczLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3JlZ3Jlc3MtMTcwNDczLmpzCkBAIC0xLDQgKzEsMyBAQAotLy9AIHNraXAKIHZhciBoZWFwID0g
bmV3IFNoYXJlZEFycmF5QnVmZmVyKDQwOTYpOwogdmFyIFVpbnQ4QXJyYXlWaWV3ID0gbmV3IFVp
bnQ4QXJyYXkoaGVhcCk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg5
MzE3LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xODkzMTcuanMKaW5kZXggOGU2OGVlMjQx
ZTdhNzdlMDdhNmFhY2MwN2FhNGZmMDQyNjc3YjhjYi4uNGI4ZjI4N2Y4NjFhZThhOGYzY2FmYjQ3
NGQ3ZWQ1YmVlZTMyMjM3YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xODkz
MTcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xODkzMTcuanMKQEAgLTkyLDcgKzky
LDcgQEAKICAgICAgICAgIkF0b21pY3Muc3RvcmUiLAogICAgICAgICAiQXRvbWljcy5zdWIiLAog
ICAgICAgICAiQXRvbWljcy53YWl0IiwKLSAgICAgICAgIkF0b21pY3Mud2FrZSIsCisgICAgICAg
ICJBdG9taWNzLm5vdGlmeSIsCiAgICAgICAgICJBdG9taWNzLnhvciIsCiAgICAgXSk7CiB9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtYXJyYXktYnVmZmVyLXNvcnQtd2hpbGUt
ZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQt
YXJyYXktYnVmZmVyLXNvcnQtd2hpbGUtZGlmZmVyZW50LXRocmVhZC1pcy1tb2RpZnlpbmcuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODYyNzMxYmFlZWQxNTg2ZTQ2YzViMjM5OWZhMDUyOGFjOWViMDAwNQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC1hcnJheS1idWZmZXItc29ydC13
aGlsZS1kaWZmZXJlbnQtdGhyZWFkLWlzLW1vZGlmeWluZy5qcwpAQCAtMCwwICsxLDM4IEBACisv
L0AgcnVuRGVmYXVsdCgiLS13YXRjaGRvZz0xMDAwIiwgIi0td2F0Y2hkb2ctZXhjZXB0aW9uLW9r
IikKKworJDI2Mi5hZ2VudC53YWl0VW50aWwgPSBmdW5jdGlvbih0eXBlZEFycmF5LCBpbmRleCwg
ZXhwZWN0ZWQpIHsKKyAgdmFyIGFnZW50cyA9IDA7CisgIHdoaWxlICgoYWdlbnRzID0gQXRvbWlj
cy5sb2FkKHR5cGVkQXJyYXksIGluZGV4KSkgIT09IGV4cGVjdGVkKSB7CisgICAgLyogbm90aGlu
ZyAqLworICB9Cit9OworCitjb25zdCBJVEVSQVRJT05TID0gNDA7Citjb25zdCBSVU5OSU5HID0g
MDsKKworY29uc3QgaTMyYSA9IG5ldyBJbnQzMkFycmF5KAorICBuZXcgU2hhcmVkQXJyYXlCdWZm
ZXIoSW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDEwMDAwMCkKKyk7CisKKyQyNjIuYWdl
bnQuc3RhcnQoYAorICAkMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoZnVuY3Rpb24oc2FiKSB7
CisgICAgY29uc3QgaTMyYSA9IG5ldyBJbnQzMkFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQo
aTMyYSwgJHtSVU5OSU5HfSwgMSk7CisKKyAgICBmb3IgKHZhciBqID0gMTsgaiA8ICR7SVRFUkFU
SU9OU307ICsraikgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGkzMmEubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGkzMmFbaV0gPSBqOworICAgICAgICB9CisgICAgfQorCisgICAg
JDI2Mi5hZ2VudC5yZXBvcnQoImRvbmUiKTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAg
fSk7CitgKTsKKworJDI2Mi5hZ2VudC5icm9hZGNhc3QoaTMyYS5idWZmZXIpOworJDI2Mi5hZ2Vu
dC53YWl0VW50aWwoaTMyYSwgUlVOTklORywgMSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgSVRF
UkFUSU9OUzsgKytpKSB7CisgICAgaTMyYS5zb3J0KCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKaW5kZXgg
YjkxNDk2N2JkYjcwNTA0MmI4OGZiOWY1ODBiYmRhZDlkZDhjZTNiMS4uMmFhOWNiYmJlZDMwM2Y5
MTczY2ZlYzAyYjlkZDY5NDdjYjM2OTRmMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2Nv
bmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApAQCAtNiwxMCArNiwx
MCBAQCBmbGFnczoKICAgY2xhc3MtZmllbGRzLXB1YmxpYzogdXNlUHVibGljQ2xhc3NGaWVsZHMK
ICAgY2xhc3MtZmllbGRzLXByaXZhdGU6IHVzZVByaXZhdGVDbGFzc0ZpZWxkcwogICBJbnRsLkRh
dGVUaW1lRm9ybWF0LWRheVBlcmlvZDogdXNlSW50bERhdGVUaW1lRm9ybWF0RGF5UGVyaW9kCisg
IFNoYXJlZEFycmF5QnVmZmVyOiB1c2VTaGFyZWRBcnJheUJ1ZmZlcgorICBBdG9taWNzOiB1c2VT
aGFyZWRBcnJheUJ1ZmZlcgogc2tpcDoKICAgZmVhdHVyZXM6Ci0gICAgLSBTaGFyZWRBcnJheUJ1
ZmZlcgotICAgIC0gQXRvbWljcwogICAgIC0gQXRvbWljcy53YWl0QXN5bmMKICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ5MzEKICAgICAtIHJlZ2V4cC1s
b29rYmVoaW5kCkBAIC04Miw2ICs4MiwxOSBAQCBza2lwOgogICAgIC0gdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0L0JpZ0ludAogICAgIC0gdGVzdC9i
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9vZi9CaWdJbnQKIAorICAgIC0gdGVzdC9i
dWlsdC1pbnMvQXRvbWljcy9hZGQvYmlnaW50CisgICAgLSB0ZXN0L2J1aWx0LWlucy9BdG9taWNz
L2FuZC9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3MvY29tcGFyZUV4Y2hhbmdl
L2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9leGNoYW5nZS9iaWdpbnQKKyAg
ICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3MvaXNMb2NrRnJlZS9iaWdpbnQKKyAgICAtIHRlc3Qv
YnVpbHQtaW5zL0F0b21pY3MvbG9hZC9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvbm90aWZ5L2JpZ2ludAorICAgIC0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy9vci9iaWdpbnQK
KyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvc3RvcmUvYmlnaW50CisgICAgLSB0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3N1Yi9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdC9iaWdpbnQKKyAgICAtIHRlc3QvYnVpbHQtaW5zL0F0b21pY3MveG9yL2JpZ2ludAorCiAg
ICAgIyByZXF1aXJlcyBJQ1UgQVBJcyBpbXBsZW1lbnRhdGlvbgogICAgICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyMgogICAgIC0gdGVzdC9pbnRsNDAyL0Rh
dGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRSYW5nZVRvUGFydHMKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbAppbmRleCBjNTdiYWE0ZjViNTIxZGFkNzhhMmFiNWI1ZDAwZWJjOTkyOWJiZGQ4
Li45NTQ0MzE0YmIwZWE0ZWY2MWRjY2NhY2JlZjNhM2ZiZmQ2Nzk3OGM4IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCkBAIC04NDcsNiArODQ3LDMwIEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4
cC9wcm90b3R5cGUvZXhlYy91LWxhc3RpbmRleC1hZHYuanM6CiB0ZXN0L2J1aWx0LWlucy9SZWdF
eHAvcXVhbnRpZmllci1pbnRlZ2VyLWxpbWl0LmpzOgogICBkZWZhdWx0OiAnU3ludGF4RXJyb3I6
IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50
aWZpZXInCiAgIHN0cmljdCBtb2RlOiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHBy
ZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXInCit0ZXN0L2J1aWx0LWlu
cy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1jb25zdHJ1Y3Rvci1p
cy1ub3Qtb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3Jg
IHZhbHVlIGlzIG51bGwgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBgY29uc3RydWN0b3JgIHZhbHVlIGlzIG51bGwgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2J1aWx0LWlu
cy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1pcy1ub3QtY29uc3Ry
dWN0b3IuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcltTeW1ib2wu
c3BlY2llc11gIHZhbHVlIGlzIE9iamVjdCBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IGBjb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIE9iamVj
dCBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKK3Rlc3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlw
ZS9zbGljZS9zcGVjaWVzLWlzLW5vdC1vYmplY3QuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IGBjb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc11gIHZhbHVlIGlzIEJvb2xlYW4gRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgY29uc3RydWN0b3JbU3ltYm9s
LnNwZWNpZXNdYCB2YWx1ZSBpcyBCb29sZWFuIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9idWlsdC1pbnMv
U2hhcmVkQXJyYXlCdWZmZXIvcHJvdG90eXBlL3NsaWNlL3NwZWNpZXMtcmV0dXJucy1sYXJnZXIt
YXJyYXlidWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCqzjCuywgwqsxMMK7KSB0byBiZSB0cnVlJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrOMK7LCDCqzEwwrspIHRvIGJlIHRydWUnCit0ZXN0
L2J1aWx0LWlucy9TaGFyZWRBcnJheUJ1ZmZlci9wcm90b3R5cGUvc2xpY2Uvc3BlY2llcy1yZXR1
cm5zLW5vdC1hcnJheWJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3Qv
YnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVy
bnMtc2FtZS1hcnJheWJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3Qv
YnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLXJldHVy
bnMtc21hbGxlci1hcnJheWJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93
biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rl
c3QvYnVpbHQtaW5zL1NoYXJlZEFycmF5QnVmZmVyL3Byb3RvdHlwZS9zbGljZS9zcGVjaWVzLmpz
OgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0
IFNoYXJlZEFycmF5QnVmZmVyXcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJworICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBTaGFy
ZWRBcnJheUJ1ZmZlcl3Cuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2V2ZXJ5L2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290
IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2
MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCg==
</data>
<flag name="review"
          id="429992"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
    <flag name="commit-queue"
          id="430019"
          type_id="3"
          status="-"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>