<?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>44487</bug_id>
          
          <creation_ts>2010-08-23 22:25:02 -0700</creation_ts>
          <short_desc>Clean up NumberPrototype.cpp</short_desc>
          <delta_ts>2010-08-24 18:14:50 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268306</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-23 22:25:02 -0700</bug_when>
    <thetext>Number.toExponential/toFixed/toPrecision all contain a spaghetti of duplicated code &amp; unnecessary complexity.
Add a new DecimalNumber class to encapsulate double to string conversion, share the implementations of rounding &amp; decimal-fraction/exponential formatting.

This patch changes some layout test results - in all these cases we were not previously accurate to spec defined behaviour, and we are still not - but overall this changes reduces the overall magnitude of error due to rounding differences.  The underlying problem is that we should be using dtoa to generate results to a specified accuracy, rather than relying on pre-rounding the input values.  .  We should look at reenabling our dtoa implementation to work in this fashion as a separate change.

Up to 2x progression on mircobenchmarks of toFixed/toPrecision for small results with low precision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268311</commentid>
    <comment_count>1</comment_count>
      <attachid>65210</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-23 22:43:06 -0700</bug_when>
    <thetext>Created attachment 65210
The Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268313</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 22:47:29 -0700</bug_when>
    <thetext>Attachment 65210 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/DecimalNumber.h:26:  #ifndef header guard has wrong style, please use: DecimalNumber_h  [build/header_guard] [5]
JavaScriptCore/wtf/DecimalNumber.h:105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
JavaScriptCore/wtf/dtoa.cpp:2295:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268315</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-23 22:55:13 -0700</bug_when>
    <thetext>Attachment 65210 did not build on mac:
Build output: http://queues.webkit.org/results/3739578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268317</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-23 22:59:59 -0700</bug_when>
    <thetext>Attachment 65210 did not build on qt:
Build output: http://queues.webkit.org/results/3744618</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268325</commentid>
    <comment_count>5</comment_count>
      <attachid>65213</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-23 23:23:06 -0700</bug_when>
    <thetext>Created attachment 65213
Fix couple of issues with last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268326</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 23:25:01 -0700</bug_when>
    <thetext>Attachment 65213 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/DecimalNumber.h:105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268329</commentid>
    <comment_count>7</comment_count>
      <attachid>65214</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-23 23:27:56 -0700</bug_when>
    <thetext>Created attachment 65214
Fixes for JSVALUE32_64 builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268333</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 23:31:10 -0700</bug_when>
    <thetext>Attachment 65214 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/DecimalNumber.h:105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268336</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-23 23:36:22 -0700</bug_when>
    <thetext>Attachment 65213 did not build on mac:
Build output: http://queues.webkit.org/results/3772598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268340</commentid>
    <comment_count>10</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-23 23:40:07 -0700</bug_when>
    <thetext>Attachment 65213 did not build on qt:
Build output: http://queues.webkit.org/results/3733605</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268348</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-23 23:55:20 -0700</bug_when>
    <thetext>Attachment 65214 did not build on qt:
Build output: http://queues.webkit.org/results/3754561</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268371</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 00:36:48 -0700</bug_when>
    <thetext>Attachment 65214 did not build on chromium:
Build output: http://queues.webkit.org/results/3754563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268390</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 01:29:26 -0700</bug_when>
    <thetext>Attachment 65214 did not build on win:
Build output: http://queues.webkit.org/results/3792353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268393</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 01:35:34 -0700</bug_when>
    <thetext>Attachment 65214 did not build on gtk:
Build output: http://queues.webkit.org/results/3731549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268561</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-24 08:21:43 -0700</bug_when>
    <thetext>I love this patch, do you know what is causing all the EWS to be red?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268717</commentid>
    <comment_count>16</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-24 12:36:10 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I love this patch, do you know what is causing all the EWS to be red?

Looks like I need to include #include &lt;math.h&gt; for Qt, Windows will certainly need export changes.  Should be trivial things.  Will look at uploading a new patch in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268782</commentid>
    <comment_count>17</comment_count>
      <attachid>65321</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-24 14:09:10 -0700</bug_when>
    <thetext>Created attachment 65321
Missing include</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268784</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 14:12:02 -0700</bug_when>
    <thetext>Attachment 65321 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/DecimalNumber.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268868</commentid>
    <comment_count>19</comment_count>
      <attachid>65321</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-08-24 15:41:27 -0700</bug_when>
    <thetext>Comment on attachment 65321
Missing include

r=me fix the bloody style issue!!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268953</commentid>
    <comment_count>20</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-24 18:14:50 -0700</bug_when>
    <thetext>Fixed in r65959.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65210</attachid>
            <date>2010-08-23 22:43:06 -0700</date>
            <delta_ts>2010-08-23 23:23:06 -0700</delta_ts>
            <desc>The Patch</desc>
            <filename>DecimalNumber.patch</filename>
            <type>text/plain</type>
            <size>71189</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgIE51bWJlci50b0V4cG9uZW50aWFsL3RvRml4ZWQv
dG9QcmVjaXNpb24gYWxsIGNvbnRhaW4gYSBzcGFnaGV0dGkgb2YgZHVwbGljYXRlZAorICAgICAg
ICBjb2RlICYgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4gQWRkIGEgbmV3IERlY2ltYWxOdW1iZXIg
Y2xhc3MgdG8gZW5jYXBzdWxhdGUKKyAgICAgICAgZG91YmxlIHRvIHN0cmluZyBjb252ZXJzaW9u
LCBzaGFyZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJvdW5kaW5nICYKKyAgICAgICAgZGVjaW1h
bC1mcmFjdGlvbi9leHBvbmVudGlhbCBmb3JtYXR0aW5nLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUuZXhwOgorICAgICAgICAgICAgVXBkYXRlIGV4cG9ydHMuCisKKyAgICAgICAgKiBydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnVzdHJpbmdGb3JOYU5Pcklu
ZmluaXR5KToKKyAgICAgICAgICAgIEhlbHBlciBtZXRob2QgdXNlZCBpbiBpbXBsZW1lbnRpbmcg
dG9FeHBvbmVudGlhbC90b0ZpeGVkL3RvU3RyaW5nLgorICAgICAgICAoSlNDOjp0b1RoaXNOdW1i
ZXIpOgorICAgICAgICAgICAgSGVscGVyIG1ldGhvZCB1c2VkIGluIGltcGxlbWVudGluZyB0b0V4
cG9uZW50aWFsL3RvRml4ZWQvdG9TdHJpbmcuCisgICAgICAgIChKU0M6OmdldEludGVnZXJBcmd1
bWVudEluUmFuZ2UpOgorICAgICAgICAgICAgSGVscGVyIG1ldGhvZCB1c2VkIGluIGltcGxlbWVu
dGluZyB0b0V4cG9uZW50aWFsL3RvRml4ZWQvdG9TdHJpbmcuCisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1RvRXhwb25lbnRpYWwpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNU
b0ZpeGVkKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24pOgorICAg
ICAgICAgICAgUmVpbXBsZW1lbnRlZCB1c2luZyBuZXcgRGVjaW1hbE51bWJlciBjbGFzcy4KKyAg
ICAgICAgICAgIAorICAgICAgICAqIHJ1bnRpbWUvVVN0cmluZy5jcHA6CisgICAgICAgIChKU0M6
OlVTdHJpbmc6Om51bWJlcik6CisgICAgICAgICAgICBVcGRhdGVkIHRvIGNhbGwgbnVtYmVyVG9T
dHJpbmcuCisKKyAgICAgICAgKiB3dGYvRGVjaW1hbE51bWJlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6KToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6RGVjaW1hbE51bWJlcik6Cisg
ICAgICAgIChXVEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRGVjaW1hbCk6CisgICAgICAgIChX
VEY6OkRlY2ltYWxOdW1iZXI6OnRvU3RyaW5nRXhwb25lbnRpYWwpOgorICAgICAgICAoV1RGOjpE
ZWNpbWFsTnVtYmVyOjpzaWduKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6ZXhwb25l
bnQpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjpzaWduaWZpY2FuZCk6CisgICAgICAg
IChXVEY6OkRlY2ltYWxOdW1iZXI6OnByZWNpc2lvbik6CisgICAgICAgIChXVEY6OkRlY2ltYWxO
dW1iZXI6OmluaXQpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjppc1plcm8pOgorICAg
ICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjpyb3VuZFRvUHJlY2lzaW9uKToKKyAgICAgICAgICAg
IE5ldyBjbGFzcyB0byBwZXJmb3JtIGRvdWJsZSB0byBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAg
ICAgICAgIEhhcyB0aHJlZSBjb25zdHJ1Y3RvcnMsIHdoaWNoIGFsbG93IGNvbnZlcnNpb24gd2l0
aCBubyByb3VuZGluZywKKyAgICAgICAgICAgIHJvdW5kaW5nIHRvIHNpZ25pZmljYW50LWZpZ3Vy
ZXMsIG9yIHJvdW5kaW5nIHRvIGRlY2ltYWwtcGxhY2VzLAorICAgICAgICAgICAgYW5kIHR3byBt
ZXRob2RzIGZvciBmb3JtYXR0aW5nIHN0cmluZ3MsIGVpdGhlciB1c2luZyBkZWNpbWFsCisgICAg
ICAgICAgICBmcmFjdGlvbiBvciBleHBvbmVudGlhbCBlbmNvZGluZy4gSW50ZXJuYWwgaW1wbGVt
ZW50YXRpb24gdXNlcworICAgICAgICAgICAgcHJlLXJvdW5kaW5nIG9mIHRoZSB2YWx1ZXMgYmVm
b3JlIGNhbGxpbmcgZHRvYSByYXRoZXIgdGhhbgorICAgICAgICAgICAgcmVseWluZyBvbiBkdG9h
IHRvIGNvcnJlY3RseSByb3VuZCwgd2hpY2ggZG9lcyBub3QgcHJvZHVjZQorICAgICAgICAgICAg
ZnVsbHkgYWNjdXJhdGUgcmVzdWx0cy4gSG9wZWZ1bGx5IHdlIGNhbiBhZGRyZXNzIHRoaXMgaW4g
dGhlCisgICAgICAgICAgICBuZWFyIGZ1dHVyZS4KKworICAgICAgICAqIHd0Zi9kdG9hLmNwcDoK
KyAgICAgICAgKFdURjo6aW50UG93MTApOgorICAgICAgICAqIHd0Zi9kdG9hLmg6CisgICAgICAg
ICAgICBpbnRQb3cxMCBpcyB1c2VkIGludGVybmFsbHkgYnkgRGVjaW1hbE51bWJlci4KKyAgICAg
ICAgICAgIAorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChXVEY6
OmNvcHlUb1N0cmluZyk6CisgICAgICAgIChXVEY6Om5hbk9ySW5mVG9TdHJpbmcpOgorICAgICAg
ICAgICAgVXNlZCBpbnRlcm5hbGx5IGluIG51bWJlclRvU3RyaW5nIGZvciBOYU4vSW5maW5pdHkg
aGFuZGxpbmcuCisgICAgICAgIChXVEY6Om51bWJlclRvU3RyaW5nKToKKyAgICAgICAgICAgIEFk
ZGVkIG5ldyBtZXRob2QgdG8gY29udmVydCBkb3VibGVzIHRvIHN0cmluZ3MuCisKKyAgICAgICAg
KiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgICAgIEFkZGVkIGRlY2xhcmF0aW9uIGZv
ciBudW1iZXJUb1N0cmluZy4gVGhpcyBpcyBoZXJlIGJlY2F1c2UKKyAgICAgICAgICAgIHdlIHNo
b3VsZCBzd2l0Y2ggb3ZlciB0byB1c2luZyB0aGlzIGZvciBhbGwgZG91YmxlIHRvIHN0cmluZwor
ICAgICAgICAgICAgY29udmVyc2lvbiBpbiBXZWJDb3JlIChzZWUgc2VjdGlvbiAyLjQuNC4zIG9m
IHRoZSBIVE1MNSBzcGVjKS4KKwogMjAxMC0wOC0yMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gNjU2NDIpCisrKyBKYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Nyw2ICszNzcsNyBAQCBfX1pO
M1dURjEzY3VycmVudFRocmVhZEV2CiBfX1pOM1dURjEzdHJ5RmFzdENhbGxvY0VtbQogX19aTjNX
VEYxM3RyeUZhc3RNYWxsb2NFbQogX19aTjNXVEYxNGZhc3RNYWxsb2NTaXplRVBLdgorX19aTjNX
VEYxNG51bWJlclRvU3RyaW5nRWRSQTk2X3QKIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb240d2Fp
dEVSTlNfNU11dGV4RQogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjZzaWduYWxFdgogX19aTjNX
VEYxNVRocmVhZENvbmRpdGlvbjlicm9hZGNhc3RFdgpAQCAtNDExLDcgKzQxMiw2IEBAIF9fWk4z
V1RGMjNkYXlJbk1vbnRoRnJvbURheUluWWVhckVpYgogX19aTjNXVEYyM3dhaXRGb3JUaHJlYWRD
b21wbGV0aW9uRWpQUHYKIF9fWk4zV1RGMjdyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlFdgog
X19aTjNXVEYyOHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWRFYgotX19aTjNXVEYzMmRvdWJs
ZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0RWRQY1BqCiBfX1pOM1dURjM2bG9ja0F0b21pY2Fs
bHlJbml0aWFsaXplZFN0YXRpY011dGV4RXYKIF9fWk4zV1RGMzdwYXJzZURhdGVGcm9tTnVsbFRl
cm1pbmF0ZWRDaGFyYWN0ZXJzRVBLYwogX19aTjNXVEYzOHVubG9ja0F0b21pY2FsbHlJbml0aWFs
aXplZFN0YXRpY011dGV4RXYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjU2NDIpCisr
KyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzI2LDYgKzIzMjYsNyBAQAogCQkJaXNhID0gUEJYUHJvamVj
dDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjc3MTA4OTAyQUZFMDA4QTlFRkMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJKYXZhU2NyaXB0Q29y
ZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOworCQkJZGV2ZWxv
cG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJ
CQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4
ICsyOSw4IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByb3RvdHlwZUZ1
bmN0aW9uLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotI2luY2x1ZGUgImR0b2EuaCIK
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9EZWNpbWFsTnVtYmVy
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTY2LDc1ICs2NiwxNTIgQEAgTnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUo
RXhlY1N0YQogCiAvLyBFQ01BIDE1LjcuNC4yIC0gMTUuNy40LjcKIAotc3RhdGljIFVTdHJpbmcg
aW50ZWdlclBhcnROb0V4cChkb3VibGUgZCkKK3N0YXRpYyBVU3RyaW5nIHVzdHJpbmdGb3JOYU5P
ckluZmluaXR5KGRvdWJsZSBkKQogewotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAgaW50IHNp
Z247Ci0gICAgY2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQsIDAsICZk
ZWNpbWFsUG9pbnQsICZzaWduLCBOVUxMKTsKLSAgICBib29sIHJlc3VsdElzSW5mT3JOYW4gPSAo
ZGVjaW1hbFBvaW50ID09IDk5OTkpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4ocmVzdWx0
KTsKLQotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChzaWdu
ID8gIi0iIDogIiIpOwotICAgIGlmIChyZXN1bHRJc0luZk9yTmFuKQotICAgICAgICBidWlsZGVy
LmFwcGVuZCgoY29uc3QgY2hhciopcmVzdWx0KTsKLSAgICBlbHNlIGlmIChkZWNpbWFsUG9pbnQg
PD0gMCkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjAiKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
VmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZihkZWNpbWFsUG9pbnQgKyAxKTsKLQotICAgICAgICBpZiAo
c3RhdGljX2Nhc3Q8aW50PihsZW5ndGgpIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAgICAgICAg
QVNTRVJUKGRlY2ltYWxQb2ludCA8IDEwMjQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1Zi5kYXRh
KCksIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIG1lbXNldChidWYuZGF0YSgpICsgbGVu
Z3RoLCAnMCcsIGRlY2ltYWxQb2ludCAtIGxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgc3RybmNweShidWYuZGF0YSgpLCByZXN1bHQsIGRlY2ltYWxQb2ludCk7Ci0gICAgICAg
IGJ1ZltkZWNpbWFsUG9pbnRdID0gJ1wwJzsKKyAgICBjb25zdCBjaGFyKiBzdHJpbmc7CisgICAg
aWYgKGlzbmFuKGQpKQorICAgICAgICBzdHJpbmcgPSAiTmFOIjsKKyAgICBlbHNlIGlmIChkID4g
MCkKKyAgICAgICAgc3RyaW5nID0gIkluZmluaXR5IjsKKyAgICBlbHNlCisgICAgICAgIHN0cmlu
ZyA9ICItSW5maW5pdHkiOworICAgIHJldHVybiBVU3RyaW5nKHN0cmluZyk7Cit9CisKK3N0YXRp
YyBBTFdBWVNfSU5MSU5FIGJvb2wgdG9UaGlzTnVtYmVyKEpTVmFsdWUgdGhpc1ZhbHVlLCBkb3Vi
bGUgJngpCit7CisgICAgSlNWYWx1ZSB2ID0gdGhpc1ZhbHVlLmdldEpTTnVtYmVyKCk7CisgICAg
aWYgKFVOTElLRUxZKCF2KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHggPSB2LnVuY2hl
Y2tlZEdldE51bWJlcigpOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgQUxXQVlTX0lO
TElORSBib29sIGdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoRXhlY1N0YXRlKiBleGVjLCBpbnQg
bG93LCBpbnQgaGlnaCwgaW50JiByZXN1bHQsIGJvb2wmIGlzVW5kZWZpbmVkKQoreworICAgIHJl
c3VsdCA9IDA7CisgICAgaXNVbmRlZmluZWQgPSBmYWxzZTsKIAotICAgICAgICBidWlsZGVyLmFw
cGVuZCgoY29uc3QgY2hhciopKGJ1Zi5kYXRhKCkpKTsKKyAgICBKU1ZhbHVlIGFyZ3VtZW50MCA9
IGV4ZWMtPmFyZ3VtZW50KDApOworICAgIGlmIChhcmd1bWVudDAuaXNVbmRlZmluZWQoKSkgewor
ICAgICAgICBpc1VuZGVmaW5lZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAotICAgIHJldHVybiBidWlsZGVyLmJ1aWxkKCk7CisgICAgZG91YmxlIGFzRG91YmxlID0gYXJn
dW1lbnQwLnRvSW50ZWdlcihleGVjKTsKKyAgICBpZiAoYXNEb3VibGUgPCBsb3cgfHwgYXNEb3Vi
bGUgPiBoaWdoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxpbnQ+KGFzRG91YmxlKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFVTdHJp
bmcgY2hhclNlcXVlbmNlKGNoYXIgYywgaW50IGNvdW50KQorLy8gdG9FeHBvbmVudGlhbCBjb252
ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZywgYWx3YXlzIGZvcm1hdHRpbmcgYXMgYW4gZXhwb2Vu
dGlhbC4KKy8vIFRoaXMgbWV0aG9kIHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHNwZWNpZnlp
bmcgYSBudW1iZXIgb2YgKmRlY2ltYWwgcGxhY2VzKgorLy8gdG8gcm91bmQgdGhlIHNpZ25pZmlj
YW5kIHRvIChvciwgcHV0IGFub3RoZXIgd2F5LCB0aGlzIG1ldGhvZCBvcHRpb25hbGx5IHJvdW5k
cworLy8gdG8gYXJndW1lbnQtcGx1cy1vbmUgc2lnbmlmaWNhbnQgZmlndXJlcykuCitFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIFZlY3RvcjxjaGFyLCAyMDQ4PiBidWYoY291bnQgKyAxLCBjKTsK
LSAgICBidWZbY291bnRdID0gJ1wwJzsKKyAgICAvLyBHZXQgeCAodGhlIGRvdWJsZSB2YWx1ZSBv
ZiB0aGlzLCB3aGljaCBzaG91bGQgYmUgYSBOdW1iZXIpLgorICAgIGRvdWJsZSB4OworICAgIGlm
ICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworCisgICAgLy8gR2V0IHRoZSBhcmd1bWVudC4gCisg
ICAgaW50IGRlY2ltYWxQbGFjZXNJbkV4cG9uZW50OworICAgIGJvb2wgaXNVbmRlZmluZWQ7Cisg
ICAgaWYgKCFnZXRJbnRlZ2VyQXJndW1lbnRJblJhbmdlKGV4ZWMsIDAsIDIwLCBkZWNpbWFsUGxh
Y2VzSW5FeHBvbmVudCwgaXNVbmRlZmluZWQpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgInRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBt
dXN0IGJlIGJldHdlZW4gMCBhbmQgMjAiKSk7CisKKyAgICAvLyBIYW5kbGUgTmFOIGFuZCBJbmZp
bml0eS4KKyAgICBpZiAoaXNuYW4oeCkgfHwgaXNpbmYoeCkpCisgICAgICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpOwogCi0gICAgcmV0dXJuIFVTdHJpbmcoYnVm
LmRhdGEoKSk7CisgICAgLy8gUm91bmQgaWYgdGhlIGFyZ3VtZW50IGlzIG5vdCB1bmRlZmluZWQs
IGFsd2F5cyBmb3JtYXQgYXMgZXhwb25lbnRpYWwuCisgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIg
YnVmZmVyOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGlzVW5kZWZpbmVkCisgICAgICAgID8gRGVj
aW1hbE51bWJlcih4KS50b1N0cmluZ0V4cG9uZW50aWFsKGJ1ZmZlcikKKyAgICAgICAgOiBEZWNp
bWFsTnVtYmVyKHgsIFJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1cmVzLCBkZWNpbWFsUGxhY2VzSW5F
eHBvbmVudCArIDEpLnRvU3RyaW5nRXhwb25lbnRpYWwoYnVmZmVyKTsKKworICAgIHJldHVybiBq
c1N0cmluZyhleGVjLCBVU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKSk7CiB9CiAKLXN0YXRpYyBkb3Vi
bGUgaW50UG93MTAoaW50IGUpCisvLyB0b0ZpeGVkIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3Ry
aW5nLCBhbHdheXMgZm9ybWF0dGluZyBhcyBhbiBhIGRlY2ltYWwgZnJhY3Rpb24uCisvLyBUaGlz
IG1ldGhvZCB0YWtlcyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIGRlY2ltYWwg
cGxhY2VzIHRvIHJvdW5kIHRoZQorLy8gc2lnbmlmaWNhbmQgdG8uIEhvd2V2ZXIgd2hlbiBjb252
ZXJ0aW5nIGxhcmdlIHZhbHVlcyAoMWUrMjEgYW5kIGFib3ZlKSB0aGlzCisvLyBtZXRob2Qgd2ls
bCBpbnN0ZWFkIGZhbGxiYWNrIHRvIGNhbGxpbmcgVG9TdHJpbmcuIAorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlICJleHBvbmVudGlhdGlvbiBieSBzcXVhcmlu
ZyIgYWxnb3JpdGhtIGFuZAotICAgIC8vIGxvbmcgZG91YmxlIHRvIHF1aWNrbHkgYW5kIHByZWNp
c2VseSBjYWxjdWxhdGUgaW50ZWdlciBwb3dlcnMgb2YgMTAuMC4KKyAgICAvLyBHZXQgeCAodGhl
IGRvdWJsZSB2YWx1ZSBvZiB0aGlzLCB3aGljaCBzaG91bGQgYmUgYSBOdW1iZXIpLgorICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdiA9
IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOworICAgIGlmICghdikKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJl
cigpOwogCi0gICAgLy8gVGhpcyBpcyBhIGhhbmR5IHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJv
YmxlbS80NDk0NzU2PgorICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIAorICAgIGludCBkZWNpbWFs
UGxhY2VzOworICAgIGJvb2wgaXNVbmRlZmluZWQ7IC8vIFRoaXMgaXMgaWdub3JlZDsgdW5kZWZp
bmVkIHRyZWF0ZWQgYXMgMC4KKyAgICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhl
YywgMCwgMjAsIGRlY2ltYWxQbGFjZXMsIGlzVW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0ZpeGVkKCkgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwIikpOworCisgICAgLy8gMTUuNy40LjUuNyBzdGF0
ZXMgIklmIHggPj0gMTBeMjEsIHRoZW4gbGV0IG0gPSBUb1N0cmluZyh4KSIKKyAgICAvLyBUaGlz
IGFsc28gY292ZXJzIEluaW5pdHksIGFuZCBzdHJ1Y3R1cmUgdGhlIGNoZWNrIHNvIHRoYXQgTmFO
CisgICAgLy8gdmFsdWVzIGFyZSBhbHNvIGhhbmRsZWQgYnkgbnVtYmVyVG9TdHJpbmcKKyAgICBp
ZiAoIShmYWJzKHgpIDwgMWUrMjEpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgVVN0
cmluZzo6bnVtYmVyKHgpKTsKKworICAgIC8vIFRoZSBjaGVjayBhYm92ZSB3aWxsIHJldHVybiBm
YWxzZSBmb3IgTmFOIG9yIEluZmluaXR5LCB0aGVzZSB3aWxsIGJlCisgICAgLy8gaGFuZGxlZCBi
eSBudW1iZXJUb1N0cmluZy4KKyAgICBBU1NFUlQoIWlzbmFuKHgpICYmICFpc2luZih4KSk7CisK
KyAgICAvLyBDb252ZXJ0IHRvIGRlY2ltYWwgd2l0aCByb3VuZGluZywgYW5kIGZvcm1hdCBhcyBk
ZWNpbWFsLgorICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICB1bnNpZ25lZCBs
ZW5ndGggPSBEZWNpbWFsTnVtYmVyKHgsIFJvdW5kaW5nRGVjaW1hbFBsYWNlcywgZGVjaW1hbFBs
YWNlcykudG9TdHJpbmdEZWNpbWFsKGJ1ZmZlcik7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKK30KKworLy8gdG9QcmVjaXNpb24gY29udmVydHMg
YSBudW1iZXIgdG8gYSBzdHJpbmcsIHRha2VpbmcgYW4gYXJndW1lbnQgc3BlY2lmeWluZyBhCisv
LyBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZmlndXJlcyB0byByb3VuZCB0aGUgc2lnbmlmaWNhbmQg
dG8uIEZvciBwb3NpdGl2ZQorLy8gZXhwb25lbnQsIGFsbCB2YWx1ZXMgdGhhdCBjYW4gYmUgcmVw
cmVzZW50ZWQgdXNpbmcgYSBkZWNpbWFsIGZyYWN0aW9uIHdpbGwKKy8vIGJlLCBlLmcuIHdoZW4g
cm91bmRpbmcgdG8gMyBzLmYuIGFueSB2YWx1ZSB1cCB0byA5OTkgd2lsbCBiZSBmb3JtYXRlZCBh
cyBhCisvLyBkZWNpbWFsLCB3aGlsc3QgMTAwMCBpcyBjb252ZXJ0ZWQgdG8gdGhlIGV4cG9uZW50
aWFsIHJlcHJlc2VudGF0aW9uIDEuMDBlKzMuCisvLyBGb3IgbmVnYXRpdmUgZXhwb25lbnRzIHZh
bHVlcyA+PSAxZS02IGFyZSBmb3JtYXRlZCBhcyBkZWNpbWFsIGZyYWN0aW9ucywKKy8vIHdpdGgg
c21hbGxlciB2YWx1ZXMgY29udmVydGVkIHRvIGV4cG9uZW50aWFsIHJlcHJlc2VudGF0aW9uLgor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihF
eGVjU3RhdGUqIGV4ZWMpCit7CisgICAgLy8gR2V0IHggKHRoZSBkb3VibGUgdmFsdWUgb2YgdGhp
cywgd2hpY2ggc2hvdWxkIGJlIGEgTnVtYmVyKS4KKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNOdW1i
ZXIoKTsKKyAgICBpZiAoIXYpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIoKTsKIAotICAgIGlmIChlID09
IDApCi0gICAgICAgIHJldHVybiAxLjA7CisgICAgLy8gR2V0IHRoZSBhcmd1bWVudC4gCisgICAg
aW50IHNpZ25pZmljYW50RmlndXJlczsKKyAgICBib29sIGlzVW5kZWZpbmVkOworICAgIGlmICgh
Z2V0SW50ZWdlckFyZ3VtZW50SW5SYW5nZShleGVjLCAxLCAyMSwgc2lnbmlmaWNhbnRGaWd1cmVz
LCBpc1VuZGVmaW5lZCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
UmFuZ2VFcnJvcihleGVjLCAidG9QcmVjaXNpb24oKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MSBhbmQgMjEiKSk7CiAKLSAgICBib29sIG5lZ2F0aXZlID0gZSA8IDA7Ci0gICAgdW5zaWduZWQg
ZXhwID0gbmVnYXRpdmUgPyAtZSA6IGU7Ci0KLSAgICBsb25nIGRvdWJsZSByZXN1bHQgPSAxMC4w
OwotICAgIGJvb2wgZm91bmRPbmUgPSBmYWxzZTsKLSAgICBmb3IgKGludCBiaXQgPSAzMTsgYml0
ID49IDA7IGJpdC0tKSB7Ci0gICAgICAgIGlmICghZm91bmRPbmUpIHsKLSAgICAgICAgICAgIGlm
ICgoZXhwID4+IGJpdCkgJiAxKQotICAgICAgICAgICAgICAgIGZvdW5kT25lID0gdHJ1ZTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIHJlc3VsdDsKLSAg
ICAgICAgICAgIGlmICgoZXhwID4+IGJpdCkgJiAxKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IHJlc3VsdCAqIDEwLjA7Ci0gICAgICAgIH0KLSAgICB9CisgICAgLy8gVG8gcHJlY2lzaW9uIGNh
bGxlZCB3aXRoIG5vIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgVG9TdHJpbmcuCisgICAgaWYgKGlz
VW5kZWZpbmVkKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgVVN0cmluZzo6bnVtYmVy
KHgpKTsKIAotICAgIGlmIChuZWdhdGl2ZSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRv
dWJsZT4oMS4wIC8gcmVzdWx0KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZXN1
bHQpOworICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgorICAgIGlmIChpc25hbih4KSB8
fCBpc2luZih4KSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJl
cih4KSk7CisKKyAgICAvLyBDb252ZXJ0IHRvIGRlY2ltYWwgd2l0aCByb3VuZGluZy4KKyAgICBE
ZWNpbWFsTnVtYmVyIG51bWJlcih4LCBSb3VuZGluZ1NpZ25pZmljYW50RmlndXJlcywgc2lnbmlm
aWNhbnRGaWd1cmVzKTsKKyAgICAvLyBJZiBudW1iZXIgaXMgaW4gdGhlIHJhbmdlIDFlLTYgPD0g
eCA8IHBvdygxMCwgc2lnbmlmaWNhbnRGaWd1cmVzKSB0aGVuIGZvcm1hdAorICAgIC8vIGFzIGRl
Y2ltYWwuIE90aGVyd2lzZSwgZm9ybWF0IHRoZSBudW1iZXIgYXMgYW4gZXhwb25lbnRpYWwuICBE
ZWNpbWFsIGZvcm1hdAorICAgIC8vIGRlbWFuZHMgYSBtaW5pbXVtIG9mIChleHBvbmVudCArIDEp
IGRpZ2l0cyB0byByZXByZXNlbnQgYSBudW1iZXIsIGZvciBleGFtcGxlCisgICAgLy8gMTIzNCAo
MS4yMzRlKzMpIHJlcXVpcmVzIDQgZGlnaXRzLiAoU2VlIEVDTUEtMjYyIDE1LjcuNC43LjEwLmMp
CisgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIHVuc2lnbmVkIGxlbmd0aCA9
IG51bWJlci5leHBvbmVudCgpID49IC02ICYmIG51bWJlci5leHBvbmVudCgpIDwgc2lnbmlmaWNh
bnRGaWd1cmVzCisgICAgICAgID8gbnVtYmVyLnRvU3RyaW5nRGVjaW1hbChidWZmZXIpCisgICAg
ICAgIDogbnVtYmVyLnRvU3RyaW5nRXhwb25lbnRpYWwoYnVmZmVyKTsKKyAgICByZXR1cm4ganNT
dHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxlbmd0aCkpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTE1NCw3ICsyMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclBy
b3RvCiAgICAgICAgIHJhZGl4ID0gc3RhdGljX2Nhc3Q8aW50PihyYWRpeFZhbHVlLnRvSW50ZWdl
cihleGVjKSk7IC8vIG5hbiAtPiAwCiAKICAgICBpZiAocmFkaXggPT0gMTApCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgdi50b1N0cmluZyhleGVjKSkpOwor
ICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgdi50b1N0cmluZyhleGVjKSk7CiAKICAgICBz
dGF0aWMgY29uc3QgY2hhciogY29uc3QgZGlnaXRzID0gIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiI7CiAKQEAgLTI0MywyMzcgKzMyMCw0IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbnVtYmVyUHJvdG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHYpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4ZWQo
RXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOwotICAgIEpTVmFsdWUgdiA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOwotICAg
IGlmICghdikKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0KLSAgICBK
U1ZhbHVlIGZyYWN0aW9uRGlnaXRzID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgZG91YmxlIGRm
ID0gZnJhY3Rpb25EaWdpdHMudG9JbnRlZ2VyKGV4ZWMpOwotICAgIGlmICghKGRmID49IDAgJiYg
ZGYgPD0gMjApKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdl
RXJyb3IoZXhlYywgInRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAg
YW5kIDIwIikpOwotICAgIGludCBmID0gc3RhdGljX2Nhc3Q8aW50PihkZik7Ci0KLSAgICBkb3Vi
bGUgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7Ci0gICAgaWYgKGlzbmFuKHgpKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCAiTmFOIikp
OwotCi0gICAgVVN0cmluZyBzOwotICAgIGlmICh4IDwgMCkgewotICAgICAgICBzID0gIi0iOwot
ICAgICAgICB4ID0gLXg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcyA9ICIiOwotICAgICAgICBp
ZiAoeCA9PSAtMC4wKQotICAgICAgICAgICAgeCA9IDA7Ci0gICAgfQotCi0gICAgaWYgKHggPj0g
cG93KDEwLjAsIDIxLjApKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5n
KGV4ZWMsIG1ha2VTdHJpbmcocywgVVN0cmluZzo6bnVtYmVyKHgpKSkpOwotCi0gICAgY29uc3Qg
ZG91YmxlIHRlblRvVGhlRiA9IHBvdygxMC4wLCBmKTsKLSAgICBkb3VibGUgbiA9IGZsb29yKHgg
KiB0ZW5Ub1RoZUYpOwotICAgIGlmIChmYWJzKG4gLyB0ZW5Ub1RoZUYgLSB4KSA+PSBmYWJzKChu
ICsgMSkgLyB0ZW5Ub1RoZUYgLSB4KSkKLSAgICAgICAgbisrOwotCi0gICAgVVN0cmluZyBtID0g
aW50ZWdlclBhcnROb0V4cChuKTsKLQotICAgIGludCBrID0gbS5sZW5ndGgoKTsKLSAgICBpZiAo
ayA8PSBmKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgejsKLSAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBmICsgMSAtIGs7IGkrKykKLSAgICAgICAgICAgIHouYXBwZW5kKCcwJyk7Ci0gICAg
ICAgIHouYXBwZW5kKG0pOwotICAgICAgICBtID0gei5idWlsZCgpOwotICAgICAgICBrID0gZiAr
IDE7Ci0gICAgICAgIEFTU0VSVChrID09IHN0YXRpY19jYXN0PGludD4obS5sZW5ndGgoKSkpOwot
ICAgIH0KLSAgICBpbnQga01pbnVzZiA9IGsgLSBmOwotCi0gICAgaWYgKGtNaW51c2YgPCBzdGF0
aWNfY2FzdDxpbnQ+KG0ubGVuZ3RoKCkpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKGV4ZWMsIG1ha2VTdHJpbmcocywgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbCgwLCBr
TWludXNmKSwgIi4iLCBtLnN1YnN0cmluZ1NoYXJpbmdJbXBsKGtNaW51c2YpKSkpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhzLCBtLnN1YnN0
cmluZ1NoYXJpbmdJbXBsKDAsIGtNaW51c2YpKSkpOwotfQotCi1zdGF0aWMgdm9pZCBmcmFjdGlv
bmFsUGFydFRvU3RyaW5nKGNoYXIqIGJ1ZiwgaW50JiBpLCBjb25zdCBjaGFyKiByZXN1bHQsIGlu
dCByZXN1bHRMZW5ndGgsIGludCBmcmFjdGlvbmFsRGlnaXRzKQotewotICAgIGlmIChmcmFjdGlv
bmFsRGlnaXRzIDw9IDApCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBmRGlnaXRzSW5SZXN1
bHQgPSBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdExlbmd0aCkgLSAxOwotICAgIGJ1ZltpKytdID0g
Jy4nOwotICAgIGlmIChmRGlnaXRzSW5SZXN1bHQgPiAwKSB7Ci0gICAgICAgIGlmIChmcmFjdGlv
bmFsRGlnaXRzIDwgZkRpZ2l0c0luUmVzdWx0KSB7Ci0gICAgICAgICAgICBzdHJuY3B5KGJ1ZiAr
IGksIHJlc3VsdCArIDEsIGZyYWN0aW9uYWxEaWdpdHMpOwotICAgICAgICAgICAgaSArPSBmcmFj
dGlvbmFsRGlnaXRzOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKGkgKyBy
ZXN1bHRMZW5ndGggLSAxIDwgODApOwotICAgICAgICAgICAgbWVtY3B5KGJ1ZiArIGksIHJlc3Vs
dCArIDEsIHJlc3VsdExlbmd0aCAtIDEpOwotICAgICAgICAgICAgaSArPSBzdGF0aWNfY2FzdDxp
bnQ+KHJlc3VsdExlbmd0aCkgLSAxOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yIChpbnQg
aiA9IDA7IGogPCBmcmFjdGlvbmFsRGlnaXRzIC0gZkRpZ2l0c0luUmVzdWx0OyBqKyspCi0gICAg
ICAgIGJ1ZltpKytdID0gJzAnOwotfQotCi1zdGF0aWMgdm9pZCBleHBvbmVudGlhbFBhcnRUb1N0
cmluZyhjaGFyKiBidWYsIGludCYgaSwgaW50IGRlY2ltYWxQb2ludCkKLXsKLSAgICBidWZbaSsr
XSA9ICdlJzsKLSAgICAvLyBkZWNpbWFsUG9pbnQgY2FuJ3QgYmUgbW9yZSB0aGFuIDMgZGlnaXRz
IGRlY2ltYWwgZ2l2ZW4gdGhlCi0gICAgLy8gbmF0dXJlIG9mIGZsb2F0IHJlcHJlc2VudGF0aW9u
Ci0gICAgaW50IGV4cG9uZW50aWFsID0gZGVjaW1hbFBvaW50IC0gMTsKLSAgICBidWZbaSsrXSA9
IChleHBvbmVudGlhbCA+PSAwKSA/ICcrJyA6ICctJzsKLSAgICBpZiAoZXhwb25lbnRpYWwgPCAw
KQotICAgICAgICBleHBvbmVudGlhbCAqPSAtMTsKLSAgICBpZiAoZXhwb25lbnRpYWwgPj0gMTAw
KQotICAgICAgICBidWZbaSsrXSA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIGV4cG9uZW50aWFs
IC8gMTAwKTsKLSAgICBpZiAoZXhwb25lbnRpYWwgPj0gMTApCi0gICAgICAgIGJ1ZltpKytdID0g
c3RhdGljX2Nhc3Q8Y2hhcj4oJzAnICsgKGV4cG9uZW50aWFsICUgMTAwKSAvIDEwKTsKLSAgICBi
dWZbaSsrXSA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIGV4cG9uZW50aWFsICUgMTApOwotfQot
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRp
YWwoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwotICAgIEpTVmFsdWUgdiA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOwot
ICAgIGlmICghdikKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0KLSAg
ICBkb3VibGUgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7Ci0KLSAgICBpZiAoaXNuYW4oeCkg
fHwgaXNpbmYoeCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhl
YywgVVN0cmluZzo6bnVtYmVyKHgpKSk7Ci0KLSAgICBKU1ZhbHVlIGZyYWN0aW9uYWxEaWdpdHNW
YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGRvdWJsZSBkZiA9IGZyYWN0aW9uYWxEaWdp
dHNWYWx1ZS50b0ludGVnZXIoZXhlYyk7Ci0gICAgaWYgKCEoZGYgPj0gMCAmJiBkZiA8PSAyMCkp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVj
LCAidG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmV0d2VlbiAwIGFuZCAyMCIpKTsKLSAg
ICBpbnQgZnJhY3Rpb25hbERpZ2l0cyA9IHN0YXRpY19jYXN0PGludD4oZGYpOwotICAgIGJvb2wg
aW5jbHVkZUFsbERpZ2l0cyA9IGZyYWN0aW9uYWxEaWdpdHNWYWx1ZS5pc1VuZGVmaW5lZCgpOwot
Ci0gICAgaW50IGRlY2ltYWxBZGp1c3QgPSAwOwotICAgIGlmICh4ICYmICFpbmNsdWRlQWxsRGln
aXRzKSB7Ci0gICAgICAgIGRvdWJsZSBsb2d4ID0gZmxvb3IobG9nMTAoZmFicyh4KSkpOwotICAg
ICAgICB4IC89IHBvdygxMC4wLCBsb2d4KTsKLSAgICAgICAgY29uc3QgZG91YmxlIHRlblRvVGhl
RiA9IHBvdygxMC4wLCBmcmFjdGlvbmFsRGlnaXRzKTsKLSAgICAgICAgZG91YmxlIGZ4ID0gZmxv
b3IoeCAqIHRlblRvVGhlRikgLyB0ZW5Ub1RoZUY7Ci0gICAgICAgIGRvdWJsZSBjeCA9IGNlaWwo
eCAqIHRlblRvVGhlRikgLyB0ZW5Ub1RoZUY7Ci0KLSAgICAgICAgaWYgKGZhYnMoZnggLSB4KSA8
IGZhYnMoY3ggLSB4KSkKLSAgICAgICAgICAgIHggPSBmeDsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgeCA9IGN4OwotCi0gICAgICAgIGRlY2ltYWxBZGp1c3QgPSBzdGF0aWNfY2FzdDxpbnQ+
KGxvZ3gpOwotICAgIH0KLQotICAgIGlmIChpc25hbih4KSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIk5hTiIpKTsKLQotICAgIGlmICh4
ID09IC0wLjApIC8vICgtMC4wKS50b0V4cG9uZW50aWFsKCkgc2hvdWxkIHByaW50IGFzIDAgaW5z
dGVhZCBvZiAtMAotICAgICAgICB4ID0gMDsKLQotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAg
aW50IHNpZ247Ci0gICAgY2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIHgs
IDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCBOVUxMKTsKLSAgICBzaXplX3QgcmVzdWx0TGVuZ3Ro
ID0gc3RybGVuKHJlc3VsdCk7Ci0gICAgZGVjaW1hbFBvaW50ICs9IGRlY2ltYWxBZGp1c3Q7Ci0K
LSAgICBpbnQgaSA9IDA7Ci0gICAgY2hhciBidWZbODBdOyAvLyBkaWdpdCArICcuJyArIGZyYWN0
aW9uRGlnaXRzIChtYXggMjApICsgJ2UnICsgc2lnbiArIGV4cG9uZW50IChtYXg/KQotICAgIGlm
IChzaWduKQotICAgICAgICBidWZbaSsrXSA9ICctJzsKLQotICAgIC8vID8gOTk5OSBpcyB0aGUg
bWFnaWNhbCAicmVzdWx0IGlzIEluZiBvciBOYU4iIHZhbHVlLiAgd2hhdCdzIDk5OT8/Ci0gICAg
aWYgKGRlY2ltYWxQb2ludCA9PSA5OTkpIHsKLSAgICAgICAgQVNTRVJUKGkgKyByZXN1bHRMZW5n
dGggPCA4MCk7Ci0gICAgICAgIG1lbWNweShidWYgKyBpLCByZXN1bHQsIHJlc3VsdExlbmd0aCk7
Ci0gICAgICAgIGJ1ZltpICsgcmVzdWx0TGVuZ3RoXSA9ICdcMCc7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgYnVmW2krK10gPSByZXN1bHRbMF07Ci0KLSAgICAgICAgaWYgKGluY2x1ZGVBbGxEaWdp
dHMpCi0gICAgICAgICAgICBmcmFjdGlvbmFsRGlnaXRzID0gc3RhdGljX2Nhc3Q8aW50PihyZXN1
bHRMZW5ndGgpIC0gMTsKLQotICAgICAgICBmcmFjdGlvbmFsUGFydFRvU3RyaW5nKGJ1ZiwgaSwg
cmVzdWx0LCByZXN1bHRMZW5ndGgsIGZyYWN0aW9uYWxEaWdpdHMpOwotICAgICAgICBleHBvbmVu
dGlhbFBhcnRUb1N0cmluZyhidWYsIGksIGRlY2ltYWxQb2ludCk7Ci0gICAgICAgIGJ1ZltpKytd
ID0gJ1wwJzsKLSAgICB9Ci0gICAgQVNTRVJUKGkgPD0gODApOwotCi0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBidWYpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNW
YWx1ZSB2ID0gdGhpc1ZhbHVlLmdldEpTTnVtYmVyKCk7Ci0gICAgaWYgKCF2KQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLQotICAgIGRvdWJsZSBkb3VibGVQcmVjaXNp
b24gPSBleGVjLT5hcmd1bWVudCgwKS50b0ludGVnZXJQcmVzZXJ2ZU5hTihleGVjKTsKLSAgICBk
b3VibGUgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkKCkgfHwgaXNuYW4oeCkgfHwgaXNpbmYoeCkpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgdi50b1N0cmluZyhleGVjKSkpOwotCi0g
ICAgVVN0cmluZyBzOwotICAgIGlmICh4IDwgMCkgewotICAgICAgICBzID0gIi0iOwotICAgICAg
ICB4ID0gLXg7Ci0gICAgfSBlbHNlCi0gICAgICAgIHMgPSAiIjsKLQotICAgIGlmICghKGRvdWJs
ZVByZWNpc2lvbiA+PSAxICYmIGRvdWJsZVByZWNpc2lvbiA8PSAyMSkpIC8vIHRydWUgZm9yIE5h
TgotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhl
YywgInRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxIikpOwot
ICAgIGludCBwcmVjaXNpb24gPSBzdGF0aWNfY2FzdDxpbnQ+KGRvdWJsZVByZWNpc2lvbik7Ci0K
LSAgICBpbnQgZSA9IDA7Ci0gICAgVVN0cmluZyBtOwotICAgIGlmICh4KSB7Ci0gICAgICAgIGUg
PSBzdGF0aWNfY2FzdDxpbnQ+KGxvZzEwKHgpKTsKLSAgICAgICAgZG91YmxlIHRlbnMgPSBpbnRQ
b3cxMChlIC0gcHJlY2lzaW9uICsgMSk7Ci0gICAgICAgIGRvdWJsZSBuID0gZmxvb3IoeCAvIHRl
bnMpOwotICAgICAgICBpZiAobiA8IGludFBvdzEwKHByZWNpc2lvbiAtIDEpKSB7Ci0gICAgICAg
ICAgICBlID0gZSAtIDE7Ci0gICAgICAgICAgICB0ZW5zID0gaW50UG93MTAoZSAtIHByZWNpc2lv
biArIDEpOwotICAgICAgICAgICAgbiA9IGZsb29yKHggLyB0ZW5zKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChmYWJzKChuICsgMS4wKSAqIHRlbnMgLSB4KSA8PSBmYWJzKG4gKiB0ZW5zIC0g
eCkpCi0gICAgICAgICAgICArK247Ci0gICAgICAgIC8vIG1haW50YWluIG4gPCAxMF4ocHJlY2lz
aW9uKQotICAgICAgICBpZiAobiA+PSBpbnRQb3cxMChwcmVjaXNpb24pKSB7Ci0gICAgICAgICAg
ICBuIC89IDEwLjA7Ci0gICAgICAgICAgICBlICs9IDE7Ci0gICAgICAgIH0KLSAgICAgICAgQVNT
RVJUKGludFBvdzEwKHByZWNpc2lvbiAtIDEpIDw9IG4pOwotICAgICAgICBBU1NFUlQobiA8IGlu
dFBvdzEwKHByZWNpc2lvbikpOwotCi0gICAgICAgIG0gPSBpbnRlZ2VyUGFydE5vRXhwKG4pOwot
ICAgICAgICBpZiAoZSA8IC02IHx8IGUgPj0gcHJlY2lzaW9uKSB7Ci0gICAgICAgICAgICBpZiAo
bS5sZW5ndGgoKSA+IDEpCi0gICAgICAgICAgICAgICAgbSA9IG1ha2VTdHJpbmcobS5zdWJzdHJp
bmdTaGFyaW5nSW1wbCgwLCAxKSwgIi4iLCBtLnN1YnN0cmluZ1NoYXJpbmdJbXBsKDEpKTsKLSAg
ICAgICAgICAgIGlmIChlID49IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsIHMsIG0sICJlKyIsIFVTdHJpbmc6Om51
bWJlcihlKSkpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250
cml2aWFsU3RyaW5nKGV4ZWMsIHMsIG0sICJlLSIsIFVTdHJpbmc6Om51bWJlcigtZSkpKTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG0gPSBjaGFyU2VxdWVuY2UoJzAnLCBwcmVj
aXNpb24pOwotICAgICAgICBlID0gMDsKLSAgICB9Ci0KLSAgICBpZiAoZSA9PSBwcmVjaXNpb24g
LSAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VT
dHJpbmcocywgbSkpKTsKLSAgICBpZiAoZSA+PSAwKSB7Ci0gICAgICAgIGlmIChlICsgMSA8IHN0
YXRpY19jYXN0PGludD4obS5sZW5ndGgoKSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VTdHJpbmcocywgbS5zdWJzdHJpbmdTaGFyaW5nSW1w
bCgwLCBlICsgMSksICIuIiwgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbChlICsgMSkpKSk7Ci0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhzLCBt
KSkpOwotICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxT
dHJpbmcoZXhlYywgcywgIjAuIiwgY2hhclNlcXVlbmNlKCcwJywgLShlICsgMSkpLCBtKSk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3Ry
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcuY3Bw
CShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiQ29sbGVjdG9yLmgiCi0jaW5jbHVkZSAiZHRvYS5o
IgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSA8Y3R5cGUuaD4KQEAgLTM5LDYgKzM4LDcgQEAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNv
ZGUvVVRGOC5oPgogCiAjaWYgSEFWRShTVFJJTkdTX0gpCkBAIC0xOTgsMTAgKzE5OCw4IEBAIFVT
dHJpbmcgVVN0cmluZzo6bnVtYmVyKGxvbmcgbCkKIAogVVN0cmluZyBVU3RyaW5nOjpudW1iZXIo
ZG91YmxlIGQpCiB7Ci0gICAgRHRvYUJ1ZmZlciBidWZmZXI7Ci0gICAgdW5zaWduZWQgbGVuZ3Ro
OwotICAgIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KGQsIGJ1ZmZlciwgJmxlbmd0
aCk7Ci0gICAgcmV0dXJuIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpOworICAgIE51bWJlclRvU3Ry
aW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKGJ1ZmZlciwg
bnVtYmVyVG9TdHJpbmcoZCwgYnVmZmVyKSk7CiB9CiAKIFVTdHJpbmcgVVN0cmluZzo6c3Vic3Ry
aW5nU2hhcmluZ0ltcGwodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0Cklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmgJKHJldmlzaW9uIDApCisrKyBKYXZhU2Ny
aXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI5NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFdURl9EZWNpbWFsTnVtYmVyX2gKKyNkZWZpbmUgV1RGX0RlY2ltYWxOdW1iZXJfaAorCisjaW5j
bHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK2VudW0gUm91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXNUeXBlIHsgUm91
bmRpbmdTaWduaWZpY2FudEZpZ3VyZXMgfTsKK2VudW0gUm91bmRpbmdEZWNpbWFsUGxhY2VzVHlw
ZSB7IFJvdW5kaW5nRGVjaW1hbFBsYWNlcyB9OworCitjbGFzcyBEZWNpbWFsTnVtYmVyIHsKK3B1
YmxpYzoKKyAgICBEZWNpbWFsTnVtYmVyKGRvdWJsZSBkKQorICAgIHsKKyAgICAgICAgYm9vbCBz
aWduID0gZCA8IDA7IC8vIFRoaXMgKGNvcnJlY3RseSkgaWdub3JlcyB0aGUgc2lnbiBvbiAtMC4w
LgorICAgICAgICBpbml0KHNpZ24sIGQpOworICAgIH0KKworICAgIC8vIElmIG91ciB2ZXJzaW9u
IG9mIGR0b2EgY291bGQgcm91bmQgdG8gYSBnaXZlbiBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZmln
dXJlcyB0aGVuCisgICAgLy8gd2UgY291bGQgcmVtb3ZlIHRoZSBwcmUtcm91bmRpbmcgY29kZSBm
cm9tIGhlcmUuICBXZSBjb3VsZCBhbHNvIGRvIHNvIGp1c3QgYnkKKyAgICAvLyBjYWxsaW5nIGR0
b2EgYW5kIHBvc3Qtcm91bmRpbmcsIGhvd2V2ZXIgY3VycmVudGx5IHRoaXMgaXMgc2xvd2VyLCBz
aW5jZSBpdCBmb3JjZXMKKyAgICAvLyBkdG9hIHRvIGdlbmVyYXRlIGEgaGlnaGVyIHByZXNpc2lv
biByZXN1bHQuCisgICAgRGVjaW1hbE51bWJlcihkb3VibGUgZCwgUm91bmRpbmdTaWduaWZpY2Fu
dEZpZ3VyZXNUeXBlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMpCisgICAgeworICAgICAg
ICBBU1NFUlQoIWlzbmFuKGQpICYmICFpc2luZihkKSk7CisgICAgICAgIEFTU0VSVChzaWduaWZp
Y2FudEZpZ3VyZXMgJiYgc2lnbmlmaWNhbnRGaWd1cmVzIDw9IDIxKTsKKworICAgICAgICBib29s
IHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBpZ25vcmVzIHRoZSBzaWduIG9uIC0w
LjAuCisgICAgICAgIGQgPSBmYWJzKGQpOyAvLyBtYWtlIGQgcG9zaXRpdmUgYmVmb3JlIGdvaW5n
IGFueSBmdXJ0aGVyLgorCisgICAgICAgIGludCBhZGp1c3QgPSAwOworICAgICAgICBpZiAoZCkg
eworICAgICAgICAgICAgLy8gVG8gcm91bmQgYSBudW1iZXIgd2UgYWxpZ24gaXQgc3VjaCB0aGF0
IHRoZSBjb3JyZWN0IG51bWJlciBvZiBkaWdpdHMgYXJlCisgICAgICAgICAgICAvLyB0byB0aGUg
bGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludCwgdGhlbiBmbG9vci9jZWlsLiAgRm9yIGV4YW1wbGUs
IHRvIHJvdW5kCisgICAgICAgICAgICAvLyAxMzU3OSB0byAzIHMuZi4gd2UgZmlyc3QgYWRqdXN0
IGl0IHRvIDEzNS43OSwgdXNlIGZsb29yL2NlaWwgdG8gb2J0YWluIHRoZQorICAgICAgICAgICAg
Ly8gdmFsdWVzIDEzNS8xMzYsIGFuZCB0aGVuIHNlbGVjdCAxMzYgKHNpbmNlIHRoaXMgaXMgY2xv
c2VzdCB0byAxMzUuNzkpLgorICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGN1cnJlbnRseSAoZXhw
ICsgMSkgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIHBvaW50LAorICAgICAgICAg
ICAgLy8gYW5kIHdlIHdhbnQgdGhzaSB0byBiZSBzaWduaWZpY2FudEZpZ3VyZXMsIHNvIHdlJ3Jl
IGdvaW5nIHRvIGFkanVzdCB0aGUKKyAgICAgICAgICAgIC8vIGV4cG9uZW50IGJ5ICgoZXhwICsg
MSkgLSBzaWduaWZpY2FudEZpZ3VyZXMpLiAgQWRqdXN0IGlzIGVmZmVjdGl2ZWx5CisgICAgICAg
ICAgICAvLyBhIGNvdW50IG9mIGhvdyBtYW55IGRlY2ltYWwgZGlnaXRzIHRvIHJpZ2h0LXNoaWZ0
IHRoZSBudW1iZXIgYnkuCisgICAgICAgICAgICBpbnQgZXhwID0gZmxvb3IobG9nMTAoZCkpOwor
ICAgICAgICAgICAgYWRqdXN0ID0gKGV4cCArIDEpIC0gc2lnbmlmaWNhbnRGaWd1cmVzOworCisg
ICAgICAgICAgICAvLyBJZiB0aGUgYWRqdXN0IHZhbHVlIG1pZ2h0IGJlIHBvc2l0aXZlIG9yIG5l
Z2F0aXZlIC0gb3IgemVyby4gIElmIHplcm8sIHRoZW4KKyAgICAgICAgICAgIC8vIG5vdGhpbmcg
dG8gZG8hIC0gdGhlIG51bWJlciBpcyBhbHJlYWR5IGFwcHJvcHJpYXRlbHkgYWxpZ25lZC4gIElm
IGFkanVzdAorICAgICAgICAgICAgLy8gaXMgcG9zaXRpdmUgdGhlbiBkaXZpZGUgZCBieSAxMF5h
ZGp1c3QuICBJZiBhZGp1c3QgaXMgbmVnYXRpdmUgbXVsdGlwbHkgZAorICAgICAgICAgICAgLy8g
YnkgMTBeLWFkanVzdC4gVGhpcyBpcyBtYXRoZW1hdGljYWxseSB0aGUgc2FtZSwgYnV0IGF2b2lk
cyB0d28gZnAgZGl2aWRlcworICAgICAgICAgICAgLy8gKG9uZSBpbnNpZGUgaW50UG93MTAsIHdo
ZXJlIHRoZSBwb3dlciBpcyBuZWdhdGl2ZSkuCisgICAgICAgICAgICBpZiAoYWRqdXN0ID4gMCkK
KyAgICAgICAgICAgICAgICBkIC89IGludFBvdzEwKGFkanVzdCk7CisgICAgICAgICAgICBlbHNl
IGlmIChhZGp1c3QgPCAwKQorICAgICAgICAgICAgICAgIGQgKj0gaW50UG93MTAoLWFkanVzdCk7
CisKKyAgICAgICAgICAgIC8vIFRyeSByb3VuZGluZyB1cCAmIHJvdW5kaW5nIGRvd24sIHNlbGVj
dCB3aGljaGV2ZXIgaXMgY2xvc2VzdCAocm91bmRpbmcgdXAgaWYgZXF1YWwgZGlzdGFuY2UpLgor
ICAgICAgICAgICAgZG91YmxlIGZsb29yT2ZEID0gZmxvb3IoZCk7CisgICAgICAgICAgICBkb3Vi
bGUgY2VpbE9mRCA9IGZsb29yT2ZEICsgMTsKKyAgICAgICAgICAgIGQgPSAoZmFicyhjZWlsT2ZE
IC0gZCkgPD0gZmFicyhmbG9vck9mRCAtIGQpKSA/IGNlaWxPZkQgOiBmbG9vck9mRDsKKworICAg
ICAgICAgICAgLy8gVGhlIG51bWJlcidzIGV4cG9uZW50IGhhcyBiZWVuIGFsdGVyZWQgLSBidXQg
ZG9uJ3QgY2hhbmdlIGl0IGJhY2shICBXZSBjYW4KKyAgICAgICAgICAgIC8vIGp1c3QgcnVuIGR0
b2Egb24gdGhlIG1vZGlmaWVkIHZhbHVlLCBhbmQgYWRqdXN0IHRoZSBleHBvbmVudCBhZnRlcndh
cmQgdG8KKyAgICAgICAgICAgIC8vIGFjY291bnQgZm9yIHRoaXMuCisgICAgICAgIH0KKworICAg
ICAgICBpbml0KHNpZ24sIGQpOworCisgICAgICAgIC8vIFdlIGFsdGVyZXJlZCB0aGUgdmFsdWUg
d2hlbiByb3VuZGluZyBpdCAtIG1vZGlmeSB0aGUgZXhwb25lbnQgdG8gYWRqdXN0IGZvciB0aGlz
LAorICAgICAgICAvLyBidXQgZG9uJ3QgbWVzcyB3aXRoIHRoZSBleHBvbmVudCBvZiB6ZXJvLgor
ICAgICAgICBpZiAoIWlzWmVybygpKQorICAgICAgICAgICAgbV9leHBvbmVudCArPSBhZGp1c3Q7
CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzaWduaWZpY2FuZCBkb2VzIG5vdCBjb250YWlu
IG1vcmUgZGlnaXRzIHRoYW4gcmVxdWVzdGVkLgorICAgICAgICByb3VuZFRvUHJlY2lzaW9uKHNp
Z25pZmljYW50RmlndXJlcyk7CisgICAgfQorCisgICAgLy8gSWYgb3VyIHZlcnNpb24gb2YgZHRv
YSBjb3VsZCByb3VuZCB0byBhIGdpdmVuIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0aGVuIHdl
CisgICAgLy8gY291bGQgcmVtb3ZlIHRoZSBwcmUtcm91bmRpbmcgY29kZSBmcm9tIGhlcmUuICBX
ZSBjb3VsZCBhbHNvIGRvIHNvIGp1c3QgYnkgY2FsbGluZworICAgIC8vIGR0b2EgYW5kIHBvc3Qt
cm91bmRpbmcsIGhvd2V2ZXIgY3VycmVudGx5IHRoaXMgaXMgc2xvd2VyLCBzaW5jZSBpdCBmb3Jj
ZXMgZHRvYSB0bworICAgIC8vIGdlbmVyYXRlIGEgaGlnaGVyIHByZXNpc2lvbiByZXN1bHQuCisg
ICAgRGVjaW1hbE51bWJlcihkb3VibGUgZCwgUm91bmRpbmdEZWNpbWFsUGxhY2VzVHlwZSwgdW5z
aWduZWQgZGVjaW1hbFBsYWNlcykgeworICAgICAgICBBU1NFUlQoIWlzbmFuKGQpICYmICFpc2lu
ZihkKSk7CisgICAgICAgIEFTU0VSVChkZWNpbWFsUGxhY2VzIDw9IDIwKTsKKworICAgICAgICBi
b29sIHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBpZ25vcmVzIHRoZSBzaWduIG9u
IC0wLjAuCisgICAgICAgIGQgPSBmYWJzKGQpOyAvLyBNYWtlIGQgcG9zaXRpdmUgYmVmb3JlIGdv
aW5nIGFueSBmdXJ0aGVyLgorCisgICAgICAgIEFTU0VSVChkIDwgMWUrMjEpOyAvLyBXZSBkb24n
dCBjdXJyZW50bHkgc3VwcG9ydCByb3VuZGluZyB0byBkZWNpbWFsIHBsYWNlcyBmb3IgdmFsdWVz
ID49IDFlKzIxLgorCisgICAgICAgIC8vIEFkanVzdCB0aGUgbnVtYmVyIGJ5IGluY3JlYXNpbmcg
dGhlIGV4cG9uZW50IGJ5IGRlY2ltYWxQbGFjZXMsIHN1Y2gKKyAgICAgICAgLy8gdGhhdCB3ZSBj
YW4gcm91bmQgdG8gdGhpcyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMganNpbmcgZmxvb3IuCisg
ICAgICAgIGlmIChkZWNpbWFsUGxhY2VzKQorICAgICAgICAgICAgZCAqPSBpbnRQb3cxMChkZWNp
bWFsUGxhY2VzKTsKKyAgICAgICAgLy8gVHJ5IHJvdW5kaW5nIHVwICYgcm91bmRpbmcgZG93biwg
c2VsZWN0IHdoaWNoZXZlciBpcyBjbG9zZXN0IChyb3VuZGluZyB1cCBpZiBlcXVhbCBkaXN0YW5j
ZSkuCisgICAgICAgIGRvdWJsZSBmbG9vck9mRCA9IGZsb29yKGQpOworICAgICAgICBkb3VibGUg
Y2VpbE9mRCA9IGZsb29yT2ZEICsgMTsKKyAgICAgICAgZCA9IChmYWJzKGNlaWxPZkQgLSBkKSA8
PSBmYWJzKGZsb29yT2ZEIC0gZCkpID8gY2VpbE9mRCA6IGZsb29yT2ZEOworICAgICAgICAvLyBU
aGUgbnVtYmVyJ3MgZXhwb25lbnQgaGFzIGJlZW4gYWx0ZXJlZCAtIGJ1dCBkb24ndCBjaGFuZ2Ug
aXQgYmFjayEgIFdlIGNhbgorICAgICAgICAvLyBqdXN0IHJ1biBkdG9hIG9uIHRoZSBtb2RpZmll
ZCB2YWx1ZSwgYW5kIGFkanVzdCB0aGUgZXhwb25lbnQgYWZ0ZXJ3YXJkIHRvCisgICAgICAgIC8v
IGFjY291bnQgZm9yIHRoaXMuCisKKyAgICAgICAgaW5pdChzaWduLCBkKTsKKworICAgICAgICAv
LyBXZSByb3VuZWQgdGhlIHZhbHVlIGJlZm9yZSBjYWxsaW5nIGR0b2EsIHNvIHRoZSByZXN1bHQg
c2hvdWxkIG5vdCBiZSBmcmFjdGlvbmFsLgorICAgICAgICBBU1NFUlQobV9leHBvbmVudCA+PSAw
KTsKKworICAgICAgICAvLyBXZSBhbHRlcmVyZWQgdGhlIHZhbHVlIHdoZW4gcm91bmRpbmcgaXQg
LSBtb2RpZnkgdGhlIGV4cG9uZW50IHRvIGFkanVzdCBmb3IgdGhpcywKKyAgICAgICAgLy8gYnV0
IGRvbid0IG1lc3Mgd2l0aCB0aGUgZXhwb25lbnQgb2YgemVyby4KKyAgICAgICAgaWYgKCFpc1pl
cm8oKSkKKyAgICAgICAgICAgIG1fZXhwb25lbnQgLT0gZGVjaW1hbFBsYWNlczsKKworICAgICAg
ICAvLyBUaGUgdmFsdWUgd2FzIDwgMWUrMjEgYmVmb3JlIHdlIHN0YXJ0ZWQsIHNob3VsZCBzdGls
bCBiZS4KKyAgICAgICAgQVNTRVJUKG1fZXhwb25lbnQgPCAyMSk7CisKKyAgICAgICAgdW5zaWdu
ZWQgc2lnbmlmaWNhbnRGaWd1cmVzID0gMSArIG1fZXhwb25lbnQgKyBkZWNpbWFsUGxhY2VzOwor
ICAgICAgICBBU1NFUlQoc2lnbmlmaWNhbnRGaWd1cmVzICYmIHNpZ25pZmljYW50RmlndXJlcyA8
PSA0MSk7CisgICAgICAgIHJvdW5kVG9QcmVjaXNpb24oc2lnbmlmaWNhbnRGaWd1cmVzKTsKKyAg
ICB9CisKKyAgICB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoTnVtYmVyVG9TdHJpbmdCdWZmZXIm
IGJ1ZmZlcikKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBhbHdheXMgYmUgYXQgbGVhc3Qgb25l
IGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQorICAgICAgICBBU1NFUlQobV9wcmVjaXNpb24p
OworICAgICAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKworICAgICAgICAvLyBpZiB0aGUgZXhw
b25lbnQgaXMgbmVnYXRpdmUgdGhlIG51bWJlciBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIG9m
IHRoZSBmb3JtOgorICAgICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJvcz5dPHNpZ25pZmljYW5kPgor
ICAgICAgICBpZiAobV9leHBvbmVudCA8IDApIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHplcm9z
ID0gLW1fZXhwb25lbnQgLSAxOworCisgICAgICAgICAgICBpZiAobV9zaWduKQorICAgICAgICAg
ICAgICAgICpuZXh0KysgPSAnLSc7CisgICAgICAgICAgICAqbmV4dCsrID0gJzAnOworICAgICAg
ICAgICAgKm5leHQrKyA9ICcuJzsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCB6ZXJvczsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSAnMCc7CisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcmVjaXNpb247ICsraSkKKyAgICAgICAgICAg
ICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKworICAgICAgICAgICAgcmV0dXJuIG5l
eHQgLSBidWZmZXI7CisgICAgICAgIH0KKworICAgICAgICB1bnNpZ25lZCBkaWdpdHNCZWZvcmVE
ZWNpbWFsUG9pbnQgPSBtX2V4cG9uZW50ICsgMTsKKworICAgICAgICAvLyBJZiB0aGUgcHJlY2lz
aW9uIGlzIDw9IHRoYW4gdGhlIG51bWJlciBvZiBkaWdpdHMgdG8gZ2V0IHVwIHRvIHRoZSBkZWNp
bWFsCisgICAgICAgIC8vIHBvaW50LCB0aGVuIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwg
bnVtYmVyIGlzIG9mIHRoZSBmb3JtOgorICAgICAgICAvLyBbPHNpZ24+XTxzaWduaWZpY2FuZD5b
PHplcm9zPl0KKyAgICAgICAgaWYgKG1fcHJlY2lzaW9uIDw9IGRpZ2l0c0JlZm9yZURlY2ltYWxQ
b2ludCkgeworICAgICAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAgICAgICAgICAqbmV4dCsr
ID0gJy0nOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcHJlY2lzaW9u
OyArK2kpCisgICAgICAgICAgICAgICAgKm5leHQrKyA9IG1fc2lnbmlmaWNhbmRbaV07CisgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKGRpZ2l0c0JlZm9yZURlY2ltYWxQb2lu
dCAtIG1fcHJlY2lzaW9uKTsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSAnMCc7CisK
KyAgICAgICAgICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gSWYgd2UgZ2V0IGhlcmUsIG51bWJlciBzdGFydHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50
LCBhbmQgZW5kcyBhZnRlciBpdCwKKyAgICAgICAgLy8gYXMgc3VjaCBpcyBvZiB0aGUgZm9ybToK
KyAgICAgICAgLy8gWzxzaWduPl08c2lnbmlmaWNhbmQtYmVnaW4+LjxzaWduaWZpY2FuZC1lbmQ+
CisKKyAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkaWdpdHNCZWZvcmVEZWNpbWFsUG9pbnQ7ICsr
aSkKKyAgICAgICAgICAgICpuZXh0KysgPSBtX3NpZ25pZmljYW5kW2ldOworICAgICAgICAqbmV4
dCsrID0gJy4nOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkaWdpdHNCZWZvcmVEZWNpbWFs
UG9pbnQ7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAgICAgICAgICAgKm5leHQrKyA9IG1fc2ln
bmlmaWNhbmRbaV07CisKKyAgICAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CisgICAgfQorCisg
ICAgdW5zaWduZWQgdG9TdHJpbmdFeHBvbmVudGlhbChOdW1iZXJUb1N0cmluZ0J1ZmZlciAmYnVm
ZmVyKQorICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUgZGln
aXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCisgICAgICAgIEFTU0VSVChtX3ByZWNpc2lvbik7CisK
KyAgICAgICAgVUNoYXIqIG5leHQgPSBidWZmZXI7CisKKyAgICAgICAgLy8gQWRkIHRoZSBzaWdu
CisgICAgICAgIGlmIChtX3NpZ24pCisgICAgICAgICAgICAqbmV4dCsrID0gJy0nOworCisgICAg
ICAgIC8vIEFkZCB0aGUgc2lnbmlmaWNhbmQKKyAgICAgICAgKm5leHQrKyA9IG1fc2lnbmlmaWNh
bmRbMF07CisgICAgICAgIGlmIChtX3ByZWNpc2lvbiA+IDEpIHsKKyAgICAgICAgICAgICpuZXh0
KysgPSAnLic7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgbV9wcmVjaXNp
b247ICsraSkKKyAgICAgICAgICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIEFkZCAiZSsiIG9yICJlLSIKKyAgICAgICAgKm5leHQrKyA9
ICdlJzsKKyAgICAgICAgaW50IGV4cG9uZW50OworICAgICAgICBpZiAobV9leHBvbmVudCA+PSAw
KSB7CisgICAgICAgICAgICAqbmV4dCsrID0gJysnOworICAgICAgICAgICAgZXhwb25lbnQgPSBt
X2V4cG9uZW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKm5leHQrKyA9ICctJzsK
KyAgICAgICAgICAgIGV4cG9uZW50ID0gLW1fZXhwb25lbnQ7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBBZGQgdGhlIGV4cG9uZW50CisgICAgICAgIGlmIChleHBvbmVudCA+PSAxMDApCisgICAg
ICAgICAgICAqbmV4dCsrID0gJzAnICsgZXhwb25lbnQgLyAxMDA7CisgICAgICAgIGlmIChleHBv
bmVudCA+PSAxMCkKKyAgICAgICAgICAgICpuZXh0KysgPSAnMCcgKyAoZXhwb25lbnQgJSAxMDAp
IC8gMTA7CisgICAgICAgICpuZXh0KysgPSAnMCcgKyBleHBvbmVudCAlIDEwOworCisgICAgICAg
IHJldHVybiBuZXh0IC0gYnVmZmVyOworICAgIH0KKworICAgIGJvb2wgc2lnbigpIHsgcmV0dXJu
IG1fc2lnbjsgfQorICAgIGludCBleHBvbmVudCgpIHsgcmV0dXJuIG1fZXhwb25lbnQ7IH0KKyAg
ICBjb25zdCBjaGFyKiBzaWduaWZpY2FuZCgpIHsgcmV0dXJuIG1fc2lnbmlmaWNhbmQ7IH0gLy8g
c2lnbmlmaWNhbmQgY29udGFpbnMgcHJlY2lzaW9uIGNoYXJhY3RlcnMsIGlzIG5vdCBudWxsLXRl
cm1pbmF0ZWQuCisgICAgdW5zaWduZWQgcHJlY2lzaW9uKCkgeyByZXR1cm4gbV9wcmVjaXNpb247
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXQoYm9vbCBzaWduLCBkb3VibGUgZCkKKyAgICB7
CisgICAgICAgIEFTU0VSVCghaXNuYW4oZCkgJiYgIWlzaW5mKGQpKTsKKworICAgICAgICBpbnQg
ZGVjaW1hbFBvaW50OworICAgICAgICBpbnQgc2lnblVudXNlZDsKKyAgICAgICAgY2hhciogcmVz
dWx0RW5kID0gMDsKKyAgICAgICAgV1RGOjpkdG9hKG1fc2lnbmlmaWNhbmQsIGQsIDAsICZkZWNp
bWFsUG9pbnQsICZzaWduVW51c2VkLCAmcmVzdWx0RW5kKTsKKworICAgICAgICBtX3NpZ24gPSBz
aWduOworICAgICAgICBtX3ByZWNpc2lvbiA9IHJlc3VsdEVuZCAtIG1fc2lnbmlmaWNhbmQ7Cisg
ICAgICAgIG1fZXhwb25lbnQgPSBkZWNpbWFsUG9pbnQgLSAxOworCisgICAgICAgIC8vIE5vIHZh
bHVlcyBvdGhlciB0aGFuIHplcm8gc2hvdWxkIGhhdmUgYSBsZWFkaW5nIHplcm8uCisgICAgICAg
IEFTU0VSVChtX3NpZ25pZmljYW5kWzBdICE9ICcwJyB8fCBtX3ByZWNpc2lvbiA9PSAxKTsKKyAg
ICAgICAgLy8gWmVybyBzaG91bGQgYWx3YXlzIGhhdmUgZXhwb25lbnQgMC4KKyAgICAgICAgQVNT
RVJUKG1fc2lnbmlmaWNhbmRbMF0gIT0gJzAnIHx8ICFtX2V4cG9uZW50KTsKKyAgICB9CisKKyAg
ICBib29sIGlzWmVybygpCisgICAgeworICAgICAgICByZXR1cm4gbV9zaWduaWZpY2FuZFswXSA9
PSAnMCc7CisgICAgfQorCisgICAgLy8gV2UgcHJlLXJvdW5kIHRoZSB2YWx1ZXMgdG8gZHRvYSAt
IHdoaWNoIGxlYWRzIHRvIGl0IGdlbmVyYXRpbmcgZmFzdGVyIHJlc3VsdHMuCisgICAgLy8gQnV0
IGR0b2Egd29uJ3QgaGF2ZSB6ZXJvIHBhZGRlZCB0aGUgc2lnbmlmaWNhbmQgdG8gdGhlIHByZWNp
c2lvbiB3ZSByZXF1aXJlLAorICAgIC8vIGFuZCBhbHNvIG1pZ2h0IGhhdmUgcHJvZHVjZWQgdG9v
IG1hbnkgZGlnaXRzIGlmIHJvdW5kaW5nIHdlbnQgd3Jvbmcgc29tZWhvdy4KKyAgICAvLyBBZGp1
c3QgZm9yIHRoaXMuCisgICAgdm9pZCByb3VuZFRvUHJlY2lzaW9uKHVuc2lnbmVkIHNpZ25pZmlj
YW50RmlndXJlcykKKyAgICB7CisgICAgICAgIEFTU0VSVChzaWduaWZpY2FudEZpZ3VyZXMgJiYg
c2lnbmlmaWNhbnRGaWd1cmVzIDw9IHNpemVvZihEdG9hQnVmZmVyKSk7CisKKyAgICAgICAgLy8g
SWYgdGhlcmUgYXJlIHRvbyBmZXcgb2YgdG9vIG1hbnkgZGlnaXRzIGluIHRoZSBzaWduaWZpY2Fu
ZCB0aGVuIGFkZCBtb3JlLCBvciByZW1vdmUgc29tZSEKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gbV9wcmVjaXNpb247IGkgPCBzaWduaWZpY2FudEZpZ3VyZXM7ICsraSkKKyAgICAgICAgICAg
IG1fc2lnbmlmaWNhbmRbaV0gPSAnMCc7CisgICAgICAgIG1fcHJlY2lzaW9uID0gc2lnbmlmaWNh
bnRGaWd1cmVzOworICAgIH0KKworICAgIGJvb2wgbV9zaWduOworICAgIGludCBtX2V4cG9uZW50
OworICAgIER0b2FCdWZmZXIgbV9zaWduaWZpY2FuZDsKKyAgICB1bnNpZ25lZCBtX3ByZWNpc2lv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkRlY2ltYWxOdW1iZXI7
Cit1c2luZyBXVEY6OlJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1cmVzOwordXNpbmcgV1RGOjpSb3Vu
ZGluZ0RlY2ltYWxQbGFjZXM7CisKKyNlbmRpZiAvLyBXVEZfRGVjaW1hbE51bWJlcl9oCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvd3RmL2R0b2EuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9k
dG9hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4NSw4MyArMjI4NSwzNSBAQCByZXQ6CiAgICAg
ICAgICpydmUgPSBzOwogfQogCi1zdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZChjaGFy
KiYgbmV4dCwgY29uc3QgY2hhciogc3JjLCB1bnNpZ25lZCBzaXplKQorZG91YmxlIGludFBvdzEw
KGludCBlKQogewotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAg
ICAgICpuZXh0KysgPSAqc3JjKys7Ci19Ci0KLXZvaWQgZG91YmxlVG9TdHJpbmdJbkphdmFTY3Jp
cHRGb3JtYXQoZG91YmxlIGQsIER0b2FCdWZmZXIgYnVmZmVyLCB1bnNpZ25lZCogcmVzdWx0TGVu
Z3RoKQotewotICAgIEFTU0VSVChidWZmZXIpOworICAgIC8vIFRoaXMgZnVuY3Rpb24gdXNlcyB0
aGUgImV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nIiBhbGdvcml0aG0gYW5kCisgICAgLy8gbG9u
ZyBkb3VibGUgdG8gcXVpY2tseSBhbmQgcHJlY2lzZWx5IGNhbGN1bGF0ZSBpbnRlZ2VyIHBvd2Vy
cyBvZiAxMC4wLgogCi0gICAgLy8gYXZvaWQgZXZlciBwcmludGluZyAtTmFOLCBpbiBKUyBjb25j
ZXB0dWFsbHkgdGhlcmUgaXMgb25seSBvbmUgTmFOIHZhbHVlCi0gICAgaWYgKGlzbmFuKGQpKSB7
Ci0gICAgICAgIGFwcGVuZChidWZmZXIsICJOYU4iLCAzKTsKLSAgICAgICAgaWYgKHJlc3VsdExl
bmd0aCkKLSAgICAgICAgICAgICpyZXN1bHRMZW5ndGggPSAzOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIC8vIC0wIC0+ICIwIgotICAgIGlmICghZCkgewotICAgICAgICBidWZmZXJbMF0g
PSAnMCc7Ci0gICAgICAgIGlmIChyZXN1bHRMZW5ndGgpCi0gICAgICAgICAgICAqcmVzdWx0TGVu
Z3RoID0gMTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAvLyBUaGlzIGlzIGEgaGFuZHkg
d29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQ0OTQ3NTY+CiAKLSAgICBpbnQgZGVjaW1h
bFBvaW50OwotICAgIGludCBzaWduOworICAgIGlmIChlID09IDApCisgICAgICAgIHJldHVybiAx
LjA7CiAKLSAgICBEdG9hQnVmZmVyIHJlc3VsdDsKLSAgICBjaGFyKiByZXN1bHRFbmQgPSAwOwot
ICAgIFdURjo6ZHRvYShyZXN1bHQsIGQsIDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCAmcmVzdWx0
RW5kKTsKLSAgICBpbnQgbGVuZ3RoID0gcmVzdWx0RW5kIC0gcmVzdWx0OwotCi0gICAgY2hhciog
bmV4dCA9IGJ1ZmZlcjsKLSAgICBpZiAoc2lnbikKLSAgICAgICAgKm5leHQrKyA9ICctJzsKLQot
ICAgIGlmIChkZWNpbWFsUG9pbnQgPD0gMCAmJiBkZWNpbWFsUG9pbnQgPiAtNikgewotICAgICAg
ICAqbmV4dCsrID0gJzAnOwotICAgICAgICAqbmV4dCsrID0gJy4nOwotICAgICAgICBmb3IgKGlu
dCBqID0gZGVjaW1hbFBvaW50OyBqIDwgMDsgaisrKQotICAgICAgICAgICAgKm5leHQrKyA9ICcw
JzsKLSAgICAgICAgYXBwZW5kKG5leHQsIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICB9IGVsc2UgaWYg
KGRlY2ltYWxQb2ludCA8PSAyMSAmJiBkZWNpbWFsUG9pbnQgPiAwKSB7Ci0gICAgICAgIGlmIChs
ZW5ndGggPD0gZGVjaW1hbFBvaW50KSB7Ci0gICAgICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0
LCBsZW5ndGgpOwotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBkZWNpbWFsUG9pbnQg
LSBsZW5ndGg7IGorKykKLSAgICAgICAgICAgICAgICAqbmV4dCsrID0gJzAnOworICAgIGJvb2wg
bmVnYXRpdmUgPSBlIDwgMDsKKyAgICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2ZSA/IC1lIDogZTsK
KworICAgIGxvbmcgZG91YmxlIHJlc3VsdCA9IDEwLjA7CisgICAgYm9vbCBmb3VuZE9uZSA9IGZh
bHNlOworICAgIGZvciAoaW50IGJpdCA9IDMxOyBiaXQgPj0gMDsgYml0LS0pIHsKKyAgICAgICAg
aWYgKCFmb3VuZE9uZSkgeworICAgICAgICAgICAgaWYgKChleHAgPj4gYml0KSAmIDEpCisgICAg
ICAgICAgICAgICAgZm91bmRPbmUgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgYXBwZW5kKG5leHQsIHJlc3VsdCwgZGVjaW1hbFBvaW50KTsKLSAgICAgICAgICAgICpuZXh0
KysgPSAnLic7Ci0gICAgICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0ICsgZGVjaW1hbFBvaW50
LCBsZW5ndGggLSBkZWNpbWFsUG9pbnQpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZXN1
bHRbMF0gPCAnMCcgfHwgcmVzdWx0WzBdID4gJzknKQotICAgICAgICBhcHBlbmQobmV4dCwgcmVz
dWx0LCBsZW5ndGgpOwotICAgIGVsc2UgewotICAgICAgICAqbmV4dCsrID0gcmVzdWx0WzBdOwot
ICAgICAgICBpZiAobGVuZ3RoID4gMSkgewotICAgICAgICAgICAgKm5leHQrKyA9ICcuJzsKLSAg
ICAgICAgICAgIGFwcGVuZChuZXh0LCByZXN1bHQgKyAxLCBsZW5ndGggLSAxKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdCAqIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICgoZXhwID4+IGJp
dCkgJiAxKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEwLjA7CiAgICAgICAg
IH0KLQotICAgICAgICAqbmV4dCsrID0gJ2UnOwotICAgICAgICAqbmV4dCsrID0gKGRlY2ltYWxQ
b2ludCA+PSAwKSA/ICcrJyA6ICctJzsKLSAgICAgICAgLy8gZGVjaW1hbFBvaW50IGNhbid0IGJl
IG1vcmUgdGhhbiAzIGRpZ2l0cyBkZWNpbWFsIGdpdmVuIHRoZQotICAgICAgICAvLyBuYXR1cmUg
b2YgZmxvYXQgcmVwcmVzZW50YXRpb24KLSAgICAgICAgaW50IGV4cG9uZW50aWFsID0gZGVjaW1h
bFBvaW50IC0gMTsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFsIDwgMCkKLSAgICAgICAgICAgIGV4
cG9uZW50aWFsID0gLWV4cG9uZW50aWFsOwotICAgICAgICBpZiAoZXhwb25lbnRpYWwgPj0gMTAw
KQotICAgICAgICAgICAgKm5leHQrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIGV4cG9uZW50
aWFsIC8gMTAwKTsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFsID49IDEwKQotICAgICAgICAgICAg
Km5leHQrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIChleHBvbmVudGlhbCAlIDEwMCkgLyAx
MCk7Ci0gICAgICAgICpuZXh0KysgPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBleHBvbmVudGlh
bCAlIDEwKTsKICAgICB9Ci0gICAgaWYgKHJlc3VsdExlbmd0aCkKLSAgICAgICAgKnJlc3VsdExl
bmd0aCA9IG5leHQgLSBidWZmZXI7CisKKyAgICBpZiAobmVnYXRpdmUpCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KDEuMCAvIHJlc3VsdCk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGRvdWJsZT4ocmVzdWx0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9k
dG9hLmgJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsMTUgKzM1LDEwIEBAIGRvdWJsZSBzdHJ0b2QoY29uc3QgY2hhciog
czAwLCBjaGFyKiogc2UKIAogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBdOwogdm9pZCBkdG9h
KER0b2FCdWZmZXIgcmVzdWx0LCBkb3VibGUgZCwgaW50IG5kaWdpdHMsIGludCogZGVjcHQsIGlu
dCogc2lnbiwgY2hhcioqIHJ2ZSk7Ci0KLS8vIGR0b2EoKSBmb3IgRUNNQS0yNjIgJ1RvU3RyaW5n
IEFwcGxpZWQgdG8gdGhlIE51bWJlciBUeXBlLicKLS8vIFRoZSAqcmVzdWx0TGVuZ3RoIHdpbGwg
aGF2ZSB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRhbnQgc3RyaW5nIGluIGJ1ZmVyLgotLy8gVGhl
IHJlc3VsdGFudCBzdHJpbmcgaXNuJ3QgdGVybWluYXRlZCBieSAwLgotdm9pZCBkb3VibGVUb1N0
cmluZ0luSmF2YVNjcmlwdEZvcm1hdChkb3VibGUsIER0b2FCdWZmZXIsIHVuc2lnbmVkKiByZXN1
bHRMZW5ndGgpOworZG91YmxlIGludFBvdzEwKGludCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
CiB1c2luZyBXVEY6OkR0b2FCdWZmZXI7Ci11c2luZyBXVEY6OmRvdWJsZVRvU3RyaW5nSW5KYXZh
U2NyaXB0Rm9ybWF0OwogCiAjZW5kaWYgLy8gV1RGX2R0b2FfaApJbmRleDogSmF2YVNjcmlwdENv
cmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93
dGYvdGV4dC9XVEZTdHJpbmcuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3Jl
L3d0Zi90ZXh0L1dURlN0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMCBA
QAogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDx3dGYv
QVNDSUlDVHlwZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogI2luY2x1ZGUg
PHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIApAQCAtOTQ3LDYgKzk0Nyw0MSBAQCBmbG9hdCBjaGFy
YWN0ZXJzVG9GbG9hdChjb25zdCBVQ2hhciogZGF0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihjaGFyYWN0ZXJzVG9Eb3VibGUoZGF0YSwgbGVuZ3RoLCBvaykpOwogfQogCitzdGF0aWMg
dW5zaWduZWQgY29weVRvU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZywgdW5zaWduZWQgbGVuZ3Ro
LCBOdW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQoreworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgYnVmZmVyW2ldID0gc3RyaW5nW2ldOworICAg
IHJldHVybiBsZW5ndGg7Cit9CisKK3N0YXRpYyBORVZFUl9JTkxJTkUgdW5zaWduZWQgbmFuT3JJ
bmZUb1N0cmluZyhkb3VibGUgeCwgTnVtYmVyVG9TdHJpbmdCdWZmZXImIGJ1ZmZlcikKK3sKKyAg
ICBBU1NFUlQoaXNuYW4oeCkgfHwgaXNpbmYoeCkpOworICAgIGlmIChpc25hbih4KSkKKyAgICAg
ICAgcmV0dXJuIGNvcHlUb1N0cmluZygiTmFOIiwgMywgYnVmZmVyKTsKKyAgICBpZiAoeCA8IDAp
CisgICAgICAgIHJldHVybiBjb3B5VG9TdHJpbmcoIi1JbmZpbml0eSIsIDksIGJ1ZmZlcik7Cisg
ICAgcmV0dXJuIGNvcHlUb1N0cmluZygiSW5maW5pdHkiLCA4LCBidWZmZXIpOworfQorCisvLyB0
b1N0cmluZyBjb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyB3aXRob3V0IHJvdW5kaW5nLiBG
b3IgdmFsdWVzIGluIHRoZSByYW5nZQorLy8gMWUtNiA8PSB4IDwgMWUrMjEgdGhlIHJlc3VsdCBp
cyBmb3JtYXR0ZWQgYXMgYSBkZWNpbWFsLCB3aXRoIHZhbHVlcyBvdXRzaWRlIG9mCisvLyB0aGlz
IHJhbmdlIGJlaW5nIGZvcm1hdHRlZCBhcyBhbiBleHBvbmVudGlhbC4KK3Vuc2lnbmVkIG51bWJl
clRvU3RyaW5nKGRvdWJsZSB4LCBOdW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQoreworICAg
IC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgorICAgIGlmIChVTkxJS0VMWShpc25hbih4KSB8
fCBpc2luZih4KSkpCisgICAgICAgIHJldHVybiBuYW5PckluZlRvU3RyaW5nKHgsIGJ1ZmZlcik7
CisKKyAgICAvLyBDb252ZXJ0IHRvIGRlY2ltYWwsIG5vIHJvdW5kaW5nLgorICAgIERlY2ltYWxO
dW1iZXIgbnVtYmVyKHgpOworCisgICAgLy8gRm9ybWF0IGFzIGRlY2ltYWwgb3IgZXhwb25lbnRp
YWwsIGRlcGVuZGluZyBvbiB0aGUgZXhwb25lbnQuCisgICAgcmV0dXJuIG51bWJlci5leHBvbmVu
dCgpID49IC02ICYmIG51bWJlci5leHBvbmVudCgpIDwgMjEKKyAgICAgICAgPyBudW1iZXIudG9T
dHJpbmdEZWNpbWFsKGJ1ZmZlcikKKyAgICAgICAgOiBudW1iZXIudG9TdHJpbmdFeHBvbmVudGlh
bChidWZmZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2lmbmRlZiBOREVCVUcKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCShyZXZpc2lvbiA2NTY0MikKKysrIEph
dmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2
ICs1MiwxMCBAQCBjbGFzcyBCU3RyaW5nOwogCiBuYW1lc3BhY2UgV1RGIHsKIAorLy8gU2l6ZSA9
IDgwIGZvciBzaXplb2YoRHRvYUJ1ZmZlcikgKyBzb21lIHNpZ24gYml0cywgZGVjaW1hbCBwb2lu
dCwgJ2UnLCBleHBvbmVudCBkaWdpdHMuCit0eXBlZGVmIFVDaGFyIE51bWJlclRvU3RyaW5nQnVm
ZmVyWzk2XTsKK3Vuc2lnbmVkIG51bWJlclRvU3RyaW5nKGRvdWJsZSwgTnVtYmVyVG9TdHJpbmdC
dWZmZXImKTsKKwogY2xhc3MgQ1N0cmluZzsKIAogLy8gRGVjbGFyYXRpb25zIG9mIHN0cmluZyBv
cGVyYXRpb25zCkBAIC00NTMsNCArNDU3LDcgQEAgdXNpbmcgV1RGOjpjaGFyYWN0ZXJzVG9JbnQ7
CiB1c2luZyBXVEY6OmNoYXJhY3RlcnNUb0Zsb2F0OwogdXNpbmcgV1RGOjpjaGFyYWN0ZXJzVG9E
b3VibGU7CiAKK3VzaW5nIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXI7Cit1c2luZyBXVEY6Om51
bWJlclRvU3RyaW5nOworCiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQor
KysgSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEg
QEAKKzIwMTAtMDgtMjMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvV1RGU3RyaW5nLmg6IEFkZGVkLgorCiAyMDEwLTA4LTEx
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
dWJiZXIgc3RhbXBzIGJ5IERhcmluIEFkbGVyICYgU2FtIFdlaW5pZy4KSW5kZXg6IEphdmFTY3Jp
cHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5o
CShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9XVEZTdHJpbmcuaD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTg2NSkKKysrIFdlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMjMgIEdhdmlu
IEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MVHJlZUJ1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplRm9yTnVtYmVyVHlwZSk6CisgICAg
ICAgICAgICBVcGRhdGUgZnVuY3Rpb24gY2FsbCB0byBudW1iZXJUb1N0cmluZy4KKwogMjAxMC0w
OC0yMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRlci5j
cHAJKHJldmlzaW9uIDY1NjQyKQorKysgV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NTEsMTAgKzE3NTEsOCBAQCBTdHJpbmcgc2VyaWFs
aXplRm9yTnVtYmVyVHlwZShkb3VibGUgbnVtCiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1
LCAidGhlIGJlc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciBuIGFzIGEgZmxvYXRpbmcK
ICAgICAvLyBwb2ludCBudW1iZXIiIGlzIGEgc3RyaW5nIHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRv
U3RyaW5nKCkgdG8gbi4KLSAgICBEdG9hQnVmZmVyIGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBsZW5n
dGg7Ci0gICAgZG91YmxlVG9TdHJpbmdJbkphdmFTY3JpcHRGb3JtYXQobnVtYmVyLCBidWZmZXIs
ICZsZW5ndGgpOwotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLCBsZW5ndGgpOworICAgIE51bWJl
clRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbnVtYmVy
VG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKIH0KIAogYm9vbCBwYXJzZVRvRG91YmxlRm9yTnVt
YmVyVHlwZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlKiBvdXQpCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA2NTg2NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDEwLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdWcgNDQ0ODcgLSBDbGVhbiB1cCBOdW1iZXJQcm90b3R5cGUuY3BwCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHNvbWUgbGF5b3V0IHRlc3QgcmVzdWx0cyAtIGluIGFsbCB0aGVzZSBj
YXNlcyB3ZSB3ZXJlCisgICAgICAgIG5vdCBwcmV2aW91c2x5IGFjY3VyYXRlIHRvIHNwZWMgZGVm
aW5lZCBiZWhhdmlvdXIsIGFuZCB3ZSBhcmUgc3RpbGwgbm90CisgICAgICAgIC0gYnV0IG92ZXJh
bGwgdGhpcyBjaGFuZ2VzIHJlZHVjZXMgdGhlIG92ZXJhbGwgbWFnbml0dWRlIG9mIGVycm9yIGR1
ZSB0bworICAgICAgICByb3VuZGluZyBkaWZmZXJlbmNlcy4gVGhlIHVuZGVybHlpbmcgcHJvYmxl
bSBpcyB0aGF0IHdlIHNob3VsZCBiZSB1c2luZworICAgICAgICBkdG9hIHRvIGdlbmVyYXRlIHJl
c3VsdHMgdG8gYSBzcGVjaWZpZWQgYWNjdXJhY3ksIHJhdGhlciB0aGFuIHJlbHlpbmcgb24KKyAg
ICAgICAgcHJlLXJvdW5kaW5nIHRoZSBpbnB1dCB2YWx1ZXMuIFdlIHNob3VsZCBsb29rIGF0IHJl
ZW5hYmxpbmcgb3VyIGR0b2EKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdG8gd29yayBpbiB0aGlz
IGZhc2hpb24gYXMgYSBzZXBhcmF0ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2pzL2tkZS9O
dW1iZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMva2RlL3NjcmlwdC10ZXN0cy9O
dW1iZXIuanM6CisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9FeHBvbmVudGlhbC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9maXhlZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9qcy9udW1iZXItdG9wcmVjaXNpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0V4cG9uZW50aWFsLmpzOgorICAgICAg
ICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b2ZpeGVkLmpzOgorICAgICAgICAqIGZh
c3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b3ByZWNpc2lvbi5qczoKKwogMjAxMC0wOC0yMyAg
SGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvRXhwb25l
bnRpYWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvbnVt
YmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0MikKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNywxMiArMTcsMTIgQEAgUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgz
KSBpcyAiMS4yMwogUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCg1KSBpcyAiMS4yMzQ1NmUr
MiIKIFBBU1MgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoNikgaXMgIjEuMjM0NTYwZSsyIgogRkFJ
TCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMCkgc2hvdWxkIGJlIDEuMjM0NTYwMDAwMDAwMDAw
MDMwNzBlKzIuIFdhcyAxLjIzNDU2MDAwMDAwMDAwMDAwMDAwZSsyLgotRkFJTCAoMTIzLjQ1Niku
dG9FeHBvbmVudGlhbCgyMSkgc2hvdWxkIGJlIDEuMjM0NTYwMDAwMDAwMDAwMDMwNjk1ZSsyLiBU
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3Qg
YmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDApIHNob3Vs
ZCBiZSAxLjIzNDU2MDAwMDAwMDAwMDAzMDY5NTQ0NjE4NDgzNjMyODAyOTYzMjU2ODM1OTM3NTAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzIuIFRo
cmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBi
ZXR3ZWVuIDAgYW5kIDIwCi1QQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdl
ZW4gMCBhbmQgMjAuCi1QQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSB0aHJldyBleGNl
cHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmV0d2VlbiAw
IGFuZCAyMC4KLVBBU1MgKDEyMzQuNTY3KS50b0V4cG9uZW50aWFsKHBvc0luZikgdGhyZXcgZXhj
ZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdlZW4g
MCBhbmQgMjAuCi1QQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChuZWdJbmYpIHRocmV3IGV4
Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZXR3ZWVu
IDAgYW5kIDIwLgorUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMCkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAw
IGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0V4cG9uZW50aWFsKHBvc0luZikgdGhyZXcgZXhj
ZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdl
ZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChuZWdJbmYpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwLgogUEFTUyBwb3NJbmYudG9FeHBvbmVudGlhbCgpIGlzICJJbmZpbml0
eSIKIFBBU1MgbmVnSW5mLnRvRXhwb25lbnRpYWwoKSBpcyAiLUluZmluaXR5IgogUEFTUyBuYW4u
dG9FeHBvbmVudGlhbCgpIGlzICJOYU4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJl
ci10b2ZpeGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pz
L251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNDIsMTYgKzQyLDE2IEBAIFBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDIpIGlzICIxMjM0LjU3
IgogUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMi45KSBpcyAiMTIzNC41NyIKIFBBU1MgKDEyMzQu
NTY3KS50b0ZpeGVkKDUpIGlzICIxMjM0LjU2NzAwIgogRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQo
MjApIHNob3VsZCBiZSAxMjM0LjU2NzAwMDAwMDAwMDAwNzI3NTk2LiBXYXMgMTIzNC41NjcwMDAw
MDAwMDAwMDAwMDAwMC4KLUZBSUwgKDEyMzQuNTY3KS50b0ZpeGVkKDIxKSBzaG91bGQgYmUgMTIz
NC41NjcwMDAwMDAwMDAwMDcyNzU5NTguIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0Zp
eGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIz
NC41NjcpLnRvRml4ZWQoMTAwKSBzaG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2
MTQxODM0MjU5MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhl
ZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAKLVBBU1MgKDEyMzQu
NTY3KS50b0ZpeGVkKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBk
aWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgotRkFJTCAoMTIzNC41Njcp
LnRvRml4ZWQoLTEpIHNob3VsZCBiZSAxMjMwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
dG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAKLUZBSUwg
KDEyMzQuNTY3KS50b0ZpeGVkKC00KSBzaG91bGQgYmUgMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdl
RXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIw
Ci1GQUlMICgxMjM0LjU2NykudG9GaXhlZCgtNSkgc2hvdWxkIGJlIDAuIFRocmV3IGV4Y2VwdGlv
biBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAw
IGFuZCAyMAotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoLTIwKSBzaG91bGQgYmUgMC4gVGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwCi1QQVNTICgxMjM0LjU2NykudG9GaXhlZCgtMjEpIHRocmV3IGV4Y2Vw
dGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2Vl
biAwIGFuZCAyMC4KLVBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKHBvc0luZikgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVu
IDAgYW5kIDIwLgotUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQobmVnSW5mKSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgyMSkgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQ
QVNTICgxMjM0LjU2NykudG9GaXhlZCgxMDApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0
b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41
NjcpLnRvRml4ZWQoMTAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVk
KC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3Qg
YmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC00KSB0aHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAw
IGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC01KSB0aHJldyBleGNlcHRpb24gUmFu
Z2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BB
U1MgKDEyMzQuNTY3KS50b0ZpeGVkKC0yMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRv
Rml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2
NykudG9GaXhlZCgtMjEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJn
dW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQo
cG9zSW5mKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKG5lZ0luZikg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJl
dHdlZW4gMCBhbmQgMjAuCiBQQVNTIHBvc0luZi50b0ZpeGVkKCkgaXMgIkluZmluaXR5IgogUEFT
UyBuZWdJbmYudG9GaXhlZCgpIGlzICItSW5maW5pdHkiCiBQQVNTIG5hbi50b0ZpeGVkKCkgaXMg
Ik5hTiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvcHJlY2lzaW9uLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b3ByZWNp
c2lvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9udW1iZXItdG9wcmVjaXNpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4
ICsyMyw4IEBAIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyKSBpcyAiMS4yZSsKIFBBU1Mg
KDEyMzQuNTY3KS50b1ByZWNpc2lvbigyLjkpIGlzICIxLjJlKzMiCiBQQVNTICgxMjM0LjU2Nyku
dG9QcmVjaXNpb24oNSkgaXMgIjEyMzQuNiIKIEZBSUwgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigy
MSkgc2hvdWxkIGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3MjguIFdhcyAxMjM0LjU2NzAwMDAwMDAw
MDAwMDAwLgotRkFJTCAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIyKSBzaG91bGQgYmUgMTIzNC41
NjcwMDAwMDAwMDAwMDcyNzYuIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lv
bigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMQotRkFJTCAoMTIzNC41NjcpLnRv
UHJlY2lzaW9uKDEwMCkgc2hvdWxkIGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc1OTU3NjE0MTgz
NDI1OTAzMzIwMzEyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9QcmVjaXNpb24oKSBh
cmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjEKK1BBU1MgKDEyMzQuNTY3KS50b1ByZWNp
c2lvbigyMikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgorUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9u
KDEwMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQg
bXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEw
MSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKHBvc0lu
ZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKG5lZ0lu
ZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvTnVt
YmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9O
dW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0MikKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMva2RlL051bWJlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4OCwxMSArMTg4
LDExIEBAIFBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0UKIFBBU1MgTnVt
YmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSBpcyAiMS4yMzQ1
Njc4OTAxMjM1ZSsyIgogUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoMTQpIGlzICIxLjIzNDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBOdW1iZXIoMTIzLjQ1
Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTUpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1
N2UrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFs
KDE2KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAx
MjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzAwZSsy
IgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTgp
IGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzEwMGUrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcwMDAwZSsy
IgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjAp
IGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAx
MjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTYpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NjhlKzIi
CitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykg
aXMgIjEuMjM0NTY3ODkwMTIzNDU2ODBlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1
Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOCkgaXMgIjEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyIgor
UEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTkpIGlz
ICIxLjIzNDU2Nzg5MDEyMzQ1NjcwMDBlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1
Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIjEuMjM0NTY3ODkwMTIzNDU2ODAwMDBlKzIi
CiBQQVNTIHRyeSB7IE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgyMSkgfSBjYXRjaCAoZSkgeyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9IGlz
IHRydWUKIFBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgpIGlzICItMS4yMzQ1Njc4OTAxMjM0NTY4ZSsyIgogUEFTUyB0cnkgeyBOdW1iZXIoLTEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKC0xKSB9IGNhdGNoIChlKSB7IFN0cmlu
ZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0gaXMgdHJ1ZQpAQCAtMjEyLDExICsyMTIsMTEg
QEAgUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50bwogUEFTUyBOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSBpcyAiLTEuMjM0NTY3
ODkwMTIzNWUrMiIKIFBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgxNCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBOdW1iZXIoLTEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSBpcyAiLTEuMjM0NTY3ODkwMTIz
NDU3ZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE2KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3MGUrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1
NzAwZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE4KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3MTAwZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAiLTEuMjM0NTY3ODkwMTIz
NDU3MDAwMGUrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgyMCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyIgorUEFTUyBOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSBpcyAiLTEuMjM0NTY3
ODkwMTIzNDU2OGUrMiIKK1BBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxNykgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyIgorUEFTUyBOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSBpcyAiLTEuMjM0NTY3
ODkwMTIzNDU2ODAwZSsyIgorUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE5KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU2NzAwMGUrMiIKK1BBU1MgTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIi0xLjIz
NDU2Nzg5MDEyMzQ1NjgwMDAwZSsyIgogUEFTUyB0cnkgeyBOdW1iZXIoLTEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIxKSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRl
eE9mKCdSYW5nZScpID49IDA7IH0gaXMgdHJ1ZQogUEFTUyBOdW1iZXIoLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDEpLnRvRXhwb25lbnRpYWwoKSBpcyAiMWUtMjIiCiBQQVNTIE51bWJlciguMDAwMDAw
MDAwMDAwMDAwMDAwMDAxMikudG9FeHBvbmVudGlhbCgpIGlzICIxLjJlLTIxIgpAQCAtMzQ4LDEx
ICszNDgsMTEgQEAgUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMwogUEFT
UyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNCkg
aXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzUiCiBQQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE1KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDYiCiBQ
QVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE2
KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU3IgotUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1
NjgiCi1QQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDE4KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAiCi1QQVNTIE51bWJlcigwLjAwMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAiMC4wMDAxMjM0NTY3
ODkwMTIzNDU2ODAwIgotUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigyMCkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAiCi1QQVNTIE51
bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBpcyAi
MC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwMDAiCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Ny4gV2FzIDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjguCitGQUlMIE51bWJlcigwLjAwMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBzaG91bGQgYmUgMC4wMDAx
MjM0NTY3ODkwMTIzNDU2NzEuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY2MC4KK0ZBSUwgTnVt
YmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIHNob3Vs
ZCBiZSAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTMuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4
MDAuCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDIwKSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzMC4gV2FzIDAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjUwMDAuCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEy
OTcuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwMC4KIFBBU1MgTnVtYmVyKDEyMzQ1LjY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigpIGlzICIxMjM0NS42Nzg5MDEyMzQ1Njci
CiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMSkg
aXMgIjFlKzQiCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVj
aXNpb24oMikgaXMgIjEuMmUrNCIKQEAgLTM3Myw3ICszNzMsNyBAQCBQQVNTIE51bWJlcigxMjM0
NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkuCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4
OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjgiCiBQQVNTIE51
bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIGlzICIxMjM0
NS42Nzg5MDEyMzQ1NjYwIgogUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDE5KSBpcyAiMTIzNDUuNjc4OTAxMjM0NTY4MDAiCi1QQVNTIE51bWJlcigx
MjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIxMjM0NS42Nzg5
MDEyMzQ1NjUwMDAiCitQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9Q
cmVjaXNpb24oMjApIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjcwMDAiCiBQQVNTIE51bWJlcigxMjM0
NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIGlzICIxMjM0NS42Nzg5MDEy
MzQ1NjcwMDAwIgogUEFTUyBOdW1iZXIoLS4wMDAwMDAwMDEyMzQ1KS50b1ByZWNpc2lvbigyKSBp
cyAiLTEuMmUtOSIKIFBBU1MgTnVtYmVyKC0uMDAwMDAwMDEyMzQ1KS50b1ByZWNpc2lvbigyKSBp
cyAiLTEuMmUtOCIKQEAgLTQwOCwxMSArNDA4LDExIEBAIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIKIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDE0KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzUiCiBQQVNTIE51
bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNSkgaXMg
Ii0wLjAwMDEyMzQ1Njc4OTAxMjM0NiIKIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE2KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NyIK
LVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9u
KDE3KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgiCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgaXMgIi0wLjAwMDEyMzQ1Njc4
OTAxMjM0NTY4MCIKLVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDE5KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMCIKLVBBU1MgTnVt
YmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBpcyAi
LTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAiCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0
NTY4MDAwMCIKK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDE3KSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcuIFdhcyAtMC4w
MDAxMjM0NTY3ODkwMTIzNDU2OC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1
NjcxLiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjYwLgorRkFJTCBOdW1iZXIoLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIHNob3VsZCBiZSAtMC4wMDAx
MjM0NTY3ODkwMTIzNDU2NzEzLiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMC4KK0ZBSUwg
TnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBz
aG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMzAuIFdhcyAtMC4wMDAxMjM0NTY3ODkw
MTIzNDU2NTAwMC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDIxKSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMjk3LiBX
YXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAwLgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY3Igog
UEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxKSBp
cyAiLTFlKzQiCiBQQVNTIE51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDIpIGlzICItMS4yZSs0IgpAQCAtNDMzLDcgKzQzMyw3IEBAIFBBU1MgTnVtYmVyKC0x
MjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkKIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1
Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY4IgogUEFT
UyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgaXMg
Ii0xMjM0NS42Nzg5MDEyMzQ1NjYwIgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjgwMCIKLVBBU1Mg
TnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIt
MTIzNDUuNjc4OTAxMjM0NTY1MDAwIgorUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjcwMDAiCiBQQVNT
IE51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBpcyAi
LTEyMzQ1LjY3ODkwMTIzNDU2NzAwMDAiCiBQQVNTIE51bWJlcigwKS50b1ByZWNpc2lvbigpIGlz
ICIwIgogUEFTUyBOdW1iZXIoMCkudG9QcmVjaXNpb24oMSkgaXMgIjAiCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2tkZS9zY3JpcHQtdGVzdHMvTnVtYmVyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMva2RlL3NjcmlwdC10ZXN0cy9OdW1iZXIuanMJKHJldmlzaW9uIDY1
NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvc2NyaXB0LXRlc3RzL051bWJlci5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjAzLDExICsyMDMsMTEgQEAgc2hvdWxkQmUoIk51bWJlcigxMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMgogc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxMykiLCJcIjEuMjM0NTY3ODkwMTIzNWUrMlwiIik7CiBzaG91
bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE0KSIs
IlwiMS4yMzQ1Njc4OTAxMjM0NmUrMlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkw
MTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTdlKzJc
IiIpOwotc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVu
dGlhbCgxNikiLCJcIjEuMjM0NTY3ODkwMTIzNDU3MGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVy
KDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE3KSIsIlwiMS4yMzQ1Njc4
OTAxMjM0NTcwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTcxMDBlKzJcIiIpOwot
c2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgx
OSkiLCJcIjEuMjM0NTY3ODkwMTIzNDU3MDAwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIwKSIsIlwiMS4yMzQ1Njc4OTAx
MjM0NTcwMDAwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDE2KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY4ZSsyXCIiKTsKK3No
b3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcp
IiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1
Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTgpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1
NjgwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE5KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY3MDAwZSsyXCIiKTsKK3Nob3Vs
ZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIiwi
XCIxLjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsyXCIiKTsKIHNob3VsZEJlVHJ1ZSgidHJ5IHsgTnVt
YmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIxKSB9IGNhdGNoIChl
KSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0iKTsKIHNob3VsZEJlKCJOdW1i
ZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKCkiLCJcIi0xLjIzNDU2
Nzg5MDEyMzQ1NjhlKzJcIiIpOwogc2hvdWxkQmVUcnVlKCJ0cnkgeyBOdW1iZXIoLTEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKC0xKSB9IGNhdGNoIChlKSB7IFN0cmluZyhl
KS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0iKTsKQEAgLTIyNywxMSArMjI3LDExIEBAIHNob3Vs
ZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEKIHNob3VsZEJlKCJOdW1iZXIoLTEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSIsIlwiLTEuMjM0NTY3ODkw
MTIzNWUrMlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMiku
dG9FeHBvbmVudGlhbCgxNCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ2ZSsyXCIiKTsKIHNob3VsZEJl
KCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSIsIlwi
LTEuMjM0NTY3ODkwMTIzNDU3ZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkw
MTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MGUr
MlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgxNykiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwZSsyXCIiKTsKLXNob3VsZEJlKCJO
dW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiLTEu
MjM0NTY3ODkwMTIzNDU3MTAwZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkw
MTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MDAw
MGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgyMCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyXCIiKTsKK3Nob3Vs
ZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSIs
IlwiLTEuMjM0NTY3ODkwMTIzNDU2OGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1
NjgwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE4KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyXCIiKTsKK3Nob3Vs
ZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIs
IlwiLTEuMjM0NTY3ODkwMTIzNDU2NzAwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0xMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkiLCJcIi0xLjIzNDU2Nzg5MDEy
MzQ1NjgwMDAwZSsyXCIiKTsKIHNob3VsZEJlVHJ1ZSgidHJ5IHsgTnVtYmVyKC0xMjMuNDU2Nzg5
MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMSkgfSBjYXRjaCAoZSkgeyBTdHJpbmcoZSku
aW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9Iik7CiBzaG91bGRCZSgiTnVtYmVyKC4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAxKS50b0V4cG9uZW50aWFsKCkiLCJcIjFlLTIyXCIiKTsKIHNob3VsZEJlKCJO
dW1iZXIoLjAwMDAwMDAwMDAwMDAwMDAwMDAwMTIpLnRvRXhwb25lbnRpYWwoKSIsIlwiMS4yZS0y
MVwiIik7CkBAIC0zNjQsMTEgKzM2NCwxMSBAQCBzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2
Nzg5MDEyMzQ1Njc4CiBzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
MjM0NSkudG9QcmVjaXNpb24oMTQpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM1XCIiKTsKIHNob3Vs
ZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
NSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ2XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMC4wMDAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNikiLCJcIjAuMDAwMTIzNDU2
Nzg5MDEyMzQ1N1wiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4
OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4XCIiKTsK
LXNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxOCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwXCIiKTsKLXNob3VsZEJlKCJOdW1i
ZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIjAu
MDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIiwiXCIwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3MDAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMDAwXCIi
KTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxNykiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjdcIiIpOworc2hvdWxkQmUoIk51
bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwi
MC4wMDAxMjM0NTY3ODkwMTIzNDU2NzFcIiIpOworc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSIsIlwiMC4wMDAxMjM0NTY3ODkw
MTIzNDU2NzEzXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMzBcIiIp
Oworc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDIxKSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEyOTdcIiIpOwogc2hvdWxkQmUo
Ik51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oKSIsIlwiMTIz
NDUuNjc4OTAxMjM0NTY3XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDEpIiwiXCIxZSs0XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIo
MTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwiXCIxLjJlKzRcIiIp
OwpAQCAtMzg5LDcgKzM4OSw3IEBAIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3
ODkwMTIKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDE3KSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY4XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIo
MTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiMTIzNDUuNjc4
OTAxMjM0NTY2MFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEy
MzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIjEyMzQ1LjY3ODkwMTIzNDU2ODAwXCIiKTsKLXNob3Vs
ZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIs
IlwiMTIzNDUuNjc4OTAxMjM0NTY1MDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3
MDAwXCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDIxKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3MDAwMFwiIik7CiBzaG91bGRCZSgi
TnVtYmVyKC0uMDAwMDAwMDAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJlLTlcIiIpOwog
c2hvdWxkQmUoIk51bWJlcigtLjAwMDAwMDAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJl
LThcIiIpOwpAQCAtNDI0LDExICs0MjQsMTEgQEAgc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0
NTY3ODkwMTIzNDU2Nwogc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxNCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM1XCIiKTsKIHNo
b3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMTUpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDZcIiIpOwogc2hvdWxkQmUoIk51bWJlcigt
MC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNikiLCJcIi0wLjAw
MDEyMzQ1Njc4OTAxMjM0NTdcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0
NTY4XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMTgpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODBcIiIpOwotc2hv
dWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigxOSkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDBcIiIpOwotc2hvdWxkQmUoIk51bWJl
cigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0w
LjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCItMC4wMDAxMjM0NTY3
ODkwMTIzNDU2ODAwMDBcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSku
dG9QcmVjaXNpb24oMTgpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzFcIiIpOworc2hvdWxk
QmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
OSkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTNcIiIpOworc2hvdWxkQmUoIk51bWJlcigt
MC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0wLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3MTMwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCItMC4wMDAxMjM0NTY3ODkw
MTIzNDU2NzEyOTdcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKCkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjdcIiIpOwogc2hvdWxk
QmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDEpIiwi
XCItMWUrNFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJlKzRcIiIpOwpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHNo
b3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEKIHNob3VsZEJlKCJOdW1iZXIo
LTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0xMjM0NS42
Nzg5MDEyMzQ1NjhcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2NjBcIiIpOwogc2hv
dWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5
KSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2ODAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1
LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0xMjM0NS42Nzg5MDEy
MzQ1NjUwMDBcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2NzAwMFwiIik7CiBzaG91
bGRCZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEp
IiwiXCItMTIzNDUuNjc4OTAxMjM0NTY3MDAwMFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDApLnRv
UHJlY2lzaW9uKCkiLCJcIjBcIiIpOwogc2hvdWxkQmUoIk51bWJlcigwKS50b1ByZWNpc2lvbigx
KSIsIlwiMFwiIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1i
ZXItdG9FeHBvbmVudGlhbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwkocmV2aXNpb24gNjU2NDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigx
MjMuNDU2KS50b0V4cG9uCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjMuNDU2KS50b0V4cG9u
ZW50aWFsKDIwKSIsICIxLjIzNDU2MDAwMDAwMDAwMDAzMDcwZSsyIik7CiAKIC8vIFNwaWRlck1v
bmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAwIHRvIDEwMCwgd2Ugb25seSBhbGxvdyAwIHRv
IDIwIGN1cnJlbnRseQotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzLjQ1NikudG9FeHBvbmVu
dGlhbCgyMSkiLCAiMS4yMzQ1NjAwMDAwMDAwMDAwMzA2OTVlKzIiKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygiKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMTAwKSIsICIxLjIzNDU2MDAwMDAwMDAw
MDAzMDY5NTQ0NjE4NDgzNjMyODAyOTYzMjU2ODM1OTM3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzIiKTsKK3Nob3VsZFRocm93KCIoMTIzLjQ1
NikudG9FeHBvbmVudGlhbCgyMSkiKTsKK3Nob3VsZFRocm93KCIoMTIzLjQ1NikudG9FeHBvbmVu
dGlhbCgxMDApIik7CiBzaG91bGRUaHJvdygiKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMTAxKSIp
Owogc2hvdWxkVGhyb3coIigxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSIpOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5q
cwkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9u
dW1iZXItdG9maXhlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNjEsMTQgKzYxLDE0IEBAIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGUKIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiKDEyMzQuNTY3KS50b0ZpeGVkKDUpIiwgIjEyMzQuNTY3MDAiKTsKIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKDIwKSIsICIxMjM0LjU2NzAwMDAwMDAwMDAwNzI3
NTk2Iik7CiAKLS8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAtMjAgdG8g
MTAwLCB3ZSBvbmx5IGFsbG93IDAgdG8gMjAgY3VycmVudGx5Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoIigxMjM0LjU2NykudG9GaXhlZCgyMSkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTgi
KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKDEwMCkiLCAiMTIz
NC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisvLyBTcGlk
ZXJNb25rZXkgYWxsb3dzIHByZWNpc2lvbiB2YWx1ZXMgLTIwIHRvIDEwMCwgdGhlIHNwZWMgb25s
eSBhbGxvd3MgMCB0byAyMAorc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgyMSkiKTsK
K3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoMTAwKSIpOwogc2hvdWxkVGhyb3coIigx
MjM0LjU2NykudG9GaXhlZCgxMDEpIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2
NykudG9GaXhlZCgtMSkiLCAiMTIzMCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41
NjcpLnRvRml4ZWQoLTQpIiwgIjAiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3
KS50b0ZpeGVkKC01KSIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2Nyku
dG9GaXhlZCgtMjApIiwgIjAiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoLTEp
Iik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b0ZpeGVkKC00KSIpOworc2hvdWxkVGhyb3co
IigxMjM0LjU2NykudG9GaXhlZCgtNSkiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4
ZWQoLTIwKSIpOwogc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgtMjEpIik7CiAKIHNo
b3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQocG9zSW5mKSIpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvcHJlY2lzaW9uLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b3ByZWNpc2lvbi5q
cwkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9u
dW1iZXItdG9wcmVjaXNpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDkgQEAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlYwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIuOSkiLCAiMS4yZSszIik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9QcmVjaXNpb24oNSkiLCAiMTIzNC42Iik7CiBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9QcmVjaXNpb24oMjEpIiwgIjEyMzQuNTY3
MDAwMDAwMDAwMDA3MjgiKTsKLS8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVl
cyAxIHRvIDEwMCwgd2Ugb25seSBhbGxvdyAxIHRvIDIxIGN1cnJlbnRseQotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIyKSIsICIxMjM0LjU2NzAwMDAwMDAw
MDAwNzI3NiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9u
KDEwMCkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsK
Ky8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAxIHRvIDEwMCwgd2UgaW1w
bGVtZW50IHRoZSBzcGVjIGFuZCBvbmx5IGFsbG93IDEgdG8gMjEuCitzaG91bGRUaHJvdygiKDEy
MzQuNTY3KS50b1ByZWNpc2lvbigyMikiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvUHJl
Y2lzaW9uKDEwMCkiKTsKIHNob3VsZFRocm93KCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMSki
KTsKIAogc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9QcmVjaXNpb24ocG9zSW5mKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65213</attachid>
            <date>2010-08-23 23:23:06 -0700</date>
            <delta_ts>2010-08-23 23:27:56 -0700</delta_ts>
            <desc>Fix couple of issues with last patch.</desc>
            <filename>DecimalNumber.2.patch</filename>
            <type>text/plain</type>
            <size>73989</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgIE51bWJlci50b0V4cG9uZW50aWFsL3RvRml4ZWQv
dG9QcmVjaXNpb24gYWxsIGNvbnRhaW4gYSBzcGFnaGV0dGkgb2YgZHVwbGljYXRlZAorICAgICAg
ICBjb2RlICYgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4gQWRkIGEgbmV3IERlY2ltYWxOdW1iZXIg
Y2xhc3MgdG8gZW5jYXBzdWxhdGUKKyAgICAgICAgZG91YmxlIHRvIHN0cmluZyBjb252ZXJzaW9u
LCBzaGFyZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJvdW5kaW5nICYKKyAgICAgICAgZGVjaW1h
bC1mcmFjdGlvbi9leHBvbmVudGlhbCBmb3JtYXR0aW5nLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUuZXhwOgorICAgICAgICAgICAgVXBkYXRlIGV4cG9ydHMuCisKKyAgICAgICAgKiBydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnRvVGhpc051bWJlcik6Cisg
ICAgICAgIChKU0M6OmdldEludGVnZXJBcmd1bWVudEluUmFuZ2UpOgorICAgICAgICAgICAgSGVs
cGVyIG1ldGhvZHMgdXNlZCBpbiBpbXBsZW1lbnRpbmcgdG9FeHBvbmVudGlhbC90b0ZpeGVkL3Rv
U3RyaW5nLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKToKKyAg
ICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9GaXhlZCk6CisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKToKKyAgICAgICAgICAgIFJlaW1wbGVtZW50ZWQgdXNpbmcg
bmV3IERlY2ltYWxOdW1iZXIgY2xhc3MuCisgICAgICAgICAgICAKKyAgICAgICAgKiBydW50aW1l
L1VTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpudW1iZXIpOgorICAgICAgICAg
ICAgVXBkYXRlZCB0byBjYWxsIG51bWJlclRvU3RyaW5nLgorCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDogQWRkZWQuCisgICAgICAgIChXVEY6Oik6CisgICAgICAgIChXVEY6OkRlY2lt
YWxOdW1iZXI6OkRlY2ltYWxOdW1iZXIpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0
b1N0cmluZ0RlY2ltYWwpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4
cG9uZW50aWFsKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6c2lnbik6CisgICAgICAg
IChXVEY6OkRlY2ltYWxOdW1iZXI6OmV4cG9uZW50KToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6c2lnbmlmaWNhbmQpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjpwcmVjaXNp
b24pOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjppbml0KToKKyAgICAgICAgKFdURjo6
RGVjaW1hbE51bWJlcjo6aXNaZXJvKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6cm91
bmRUb1ByZWNpc2lvbik6CisgICAgICAgICAgICBOZXcgY2xhc3MgdG8gcGVyZm9ybSBkb3VibGUg
dG8gc3RyaW5nIGNvbnZlcnNpb24uCisgICAgICAgICAgICBIYXMgdGhyZWUgY29uc3RydWN0b3Jz
LCB3aGljaCBhbGxvdyBjb252ZXJzaW9uIHdpdGggbm8gcm91bmRpbmcsCisgICAgICAgICAgICBy
b3VuZGluZyB0byBzaWduaWZpY2FudC1maWd1cmVzLCBvciByb3VuZGluZyB0byBkZWNpbWFsLXBs
YWNlcywKKyAgICAgICAgICAgIGFuZCB0d28gbWV0aG9kcyBmb3IgZm9ybWF0dGluZyBzdHJpbmdz
LCBlaXRoZXIgdXNpbmcgZGVjaW1hbAorICAgICAgICAgICAgZnJhY3Rpb24gb3IgZXhwb25lbnRp
YWwgZW5jb2RpbmcuIEludGVybmFsIGltcGxlbWVudGF0aW9uIHVzZXMKKyAgICAgICAgICAgIHBy
ZS1yb3VuZGluZyBvZiB0aGUgdmFsdWVzIGJlZm9yZSBjYWxsaW5nIGR0b2EgcmF0aGVyIHRoYW4K
KyAgICAgICAgICAgIHJlbHlpbmcgb24gZHRvYSB0byBjb3JyZWN0bHkgcm91bmQsIHdoaWNoIGRv
ZXMgbm90IHByb2R1Y2UKKyAgICAgICAgICAgIGZ1bGx5IGFjY3VyYXRlIHJlc3VsdHMuIEhvcGVm
dWxseSB3ZSBjYW4gYWRkcmVzcyB0aGlzIGluIHRoZQorICAgICAgICAgICAgbmVhciBmdXR1cmUu
CisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OmludFBvdzEwKToKKyAg
ICAgICAgKiB3dGYvZHRvYS5oOgorICAgICAgICAgICAgaW50UG93MTAgaXMgdXNlZCBpbnRlcm5h
bGx5IGJ5IERlY2ltYWxOdW1iZXIuCisgICAgICAgICAgICAKKyAgICAgICAgKiB3dGYvdGV4dC9X
VEZTdHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjb3B5VG9TdHJpbmcpOgorICAgICAgICAoV1RG
OjpuYW5PckluZlRvU3RyaW5nKToKKyAgICAgICAgICAgIFVzZWQgaW50ZXJuYWxseSBpbiBudW1i
ZXJUb1N0cmluZyBmb3IgTmFOL0luZmluaXR5IGhhbmRsaW5nLgorICAgICAgICAoV1RGOjpudW1i
ZXJUb1N0cmluZyk6CisgICAgICAgICAgICBBZGRlZCBuZXcgbWV0aG9kIHRvIGNvbnZlcnQgZG91
YmxlcyB0byBzdHJpbmdzLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAg
ICAgICAgICBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgbnVtYmVyVG9TdHJpbmcuIFRoaXMgaXMgaGVy
ZSBiZWNhdXNlCisgICAgICAgICAgICB3ZSBzaG91bGQgc3dpdGNoIG92ZXIgdG8gdXNpbmcgdGhp
cyBmb3IgYWxsIGRvdWJsZSB0byBzdHJpbmcKKyAgICAgICAgICAgIGNvbnZlcnNpb24gaW4gV2Vi
Q29yZSAoc2VlIHNlY3Rpb24gMi40LjQuMyBvZiB0aGUgSFRNTDUgc3BlYykuCisKIDIwMTAtMDgt
MjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9u
IDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzcsNiArMzc3LDcgQEAgX19aTjNXVEYxM2N1cnJlbnRUaHJlYWRFdgogX19aTjNX
VEYxM3RyeUZhc3RDYWxsb2NFbW0KIF9fWk4zV1RGMTN0cnlGYXN0TWFsbG9jRW0KIF9fWk4zV1RG
MTRmYXN0TWFsbG9jU2l6ZUVQS3YKK19fWk4zV1RGMTRudW1iZXJUb1N0cmluZ0VkUkE5Nl90CiBf
X1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNHdhaXRFUk5TXzVNdXRleEUKIF9fWk4zV1RGMTVUaHJl
YWRDb25kaXRpb242c2lnbmFsRXYKIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb245YnJvYWRjYXN0
RXYKQEAgLTQxMSw3ICs0MTIsNiBAQCBfX1pOM1dURjIzZGF5SW5Nb250aEZyb21EYXlJblllYXJF
aWIKIF9fWk4zV1RGMjN3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkVqUFB2CiBfX1pOM1dURjI3cmVs
ZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5RXYKIF9fWk4zV1RGMjhzZXRNYWluVGhyZWFkQ2FsbGJh
Y2tzUGF1c2VkRWIKLV9fWk4zV1RGMzJkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdEVk
UGNQagogX19aTjNXVEYzNmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CiBf
X1pOM1dURjM3cGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVyc0VQS2MKIF9fWk4z
V1RGMzh1bmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIw
MCw3IEBACiAJCTg2MjZCRUNGMTE5MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjZCRUNFMTE5
MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCAqLzsgfTsKIAkJODYyN0U1RUIxMUYx
MjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjdFNUU5MTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5jcHAgKi87IH07CiAJCTg2MjdFNUVDMTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyN0U1RUExMUYxMjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODYyQUY0QjYxMjIzOUM3
QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkFGNEI1MTIyMzlDN0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVt
YmVyLmggKi87IH07CiAJCTg2M0IyM0UwMEZDNjExODkwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjU2NTc0MjEx
NUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MDExNUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5j
cHAgKi87IH07CiAJCTg2NTY1NzQzMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MTExNUJFM0RB
MDAyOTFGNDAgLyogQ1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03ODUsNiArNzg2LDcgQEAKIAkJODYyNkJFQ0UxMTkyOEUzOTAwNzgy
RkFCIC8qIFN0cmluZ1N0YXRpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3RyaW5nU3RhdGljcy5jcHA7IHBhdGggPSB0ZXh0L1N0cmluZ1N0YXRpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyog
UGFnZUFsbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZUFsbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVF
QTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODYyQUY0QjUxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbE51bWJlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjU2NTc0MDExNUJF
M0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBDU3RyaW5nLmNwcDsgcGF0aCA9IHRleHQvQ1N0cmluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2NTY1NzQxMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENTdHJpbmcuaDsgcGF0aCA9IHRleHQv
Q1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOCw2ICsxNDQwLDcg
QEAKIAkJCQkxODBCOUFGMDBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuaCAqLywKIAkJ
CQk0MTM1OUNGNDBGREQ4OUNCMDAyMDYxODAgLyogRGF0ZU1hdGguY3BwICovLAogCQkJCTQxMzU5
Q0Y1MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5oICovLAorCQkJCTg2MkFGNEI1MTIyMzlD
N0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVtYmVyLmggKi8sCiAJCQkJNTE4NjExMUQwQ0M4MjQ4MzAw
ODE0MTJCIC8qIERlcXVlLmggKi8sCiAJCQkJOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERp
c2FsbG93Q1R5cGUuaCAqLywKIAkJCQk2NTFGNjQxMjAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5j
cHAgKi8sCkBAIC0yMjMzLDYgKzIyMzYsNyBAQAogCQkJCURERTgyQUQ4MTIwOUQ5NTUwMDVDMTc1
NiAvKiBHQ0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGMzg4NTkxMjExMzBDQTAwN0E3
Q0UzIC8qIEF0b21pY1N0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QjZEQTAyMTIx
MzJCOUEwMDBEMzE2RiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODYyQUY0QjYxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjMyNiw2ICsyMzMwLDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJY29t
cGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0g
RW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25z
ID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm90b3R5cGVGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKLSNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02Niw3NSAr
NjYsMTQwIEBAIE51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4ZWNTdGEKIAogLy8g
RUNNQSAxNS43LjQuMiAtIDE1LjcuNC43CiAKLXN0YXRpYyBVU3RyaW5nIGludGVnZXJQYXJ0Tm9F
eHAoZG91YmxlIGQpCitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRvVGhpc051bWJlcihKU1Zh
bHVlIHRoaXNWYWx1ZSwgZG91YmxlICZ4KQogewotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAg
aW50IHNpZ247Ci0gICAgY2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQs
IDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCBOVUxMKTsKLSAgICBib29sIHJlc3VsdElzSW5mT3JO
YW4gPSAoZGVjaW1hbFBvaW50ID09IDk5OTkpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4o
cmVzdWx0KTsKLQotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVu
ZChzaWduID8gIi0iIDogIiIpOwotICAgIGlmIChyZXN1bHRJc0luZk9yTmFuKQotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgoY29uc3QgY2hhciopcmVzdWx0KTsKLSAgICBlbHNlIGlmIChkZWNpbWFs
UG9pbnQgPD0gMCkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjAiKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZihkZWNpbWFsUG9pbnQgKyAxKTsKLQotICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8aW50PihsZW5ndGgpIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAg
ICAgICAgQVNTRVJUKGRlY2ltYWxQb2ludCA8IDEwMjQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1
Zi5kYXRhKCksIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIG1lbXNldChidWYuZGF0YSgp
ICsgbGVuZ3RoLCAnMCcsIGRlY2ltYWxQb2ludCAtIGxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgc3RybmNweShidWYuZGF0YSgpLCByZXN1bHQsIGRlY2ltYWxQb2ludCk7Ci0g
ICAgICAgIGJ1ZltkZWNpbWFsUG9pbnRdID0gJ1wwJzsKKyAgICBKU1ZhbHVlIHYgPSB0aGlzVmFs
dWUuZ2V0SlNOdW1iZXIoKTsKKyAgICBpZiAoVU5MSUtFTFkoIXYpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgZ2V0SW50ZWdlckFyZ3VtZW50SW5SYW5n
ZShFeGVjU3RhdGUqIGV4ZWMsIGludCBsb3csIGludCBoaWdoLCBpbnQmIHJlc3VsdCwgYm9vbCYg
aXNVbmRlZmluZWQpCit7CisgICAgcmVzdWx0ID0gMDsKKyAgICBpc1VuZGVmaW5lZCA9IGZhbHNl
OwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKChjb25zdCBjaGFyKikoYnVmLmRhdGEoKSkpOwor
ICAgIEpTVmFsdWUgYXJndW1lbnQwID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgaWYgKGFyZ3Vt
ZW50MC5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIGlzVW5kZWZpbmVkID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTsKKyAg
ICBkb3VibGUgYXNEb3VibGUgPSBhcmd1bWVudDAudG9JbnRlZ2VyKGV4ZWMpOworICAgIGlmIChh
c0RvdWJsZSA8IGxvdyB8fCBhc0RvdWJsZSA+IGhpZ2gpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludD4oYXNEb3VibGUpOworICAgIHJldHVybiB0
cnVlOwogfQogCi1zdGF0aWMgVVN0cmluZyBjaGFyU2VxdWVuY2UoY2hhciBjLCBpbnQgY291bnQp
CisvLyB0b0V4cG9uZW50aWFsIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3RyaW5nLCBhbHdheXMg
Zm9ybWF0dGluZyBhcyBhbiBleHBvZW50aWFsLgorLy8gVGhpcyBtZXRob2QgdGFrZXMgYW4gb3B0
aW9uYWwgYXJndW1lbnQgc3BlY2lmeWluZyBhIG51bWJlciBvZiAqZGVjaW1hbCBwbGFjZXMqCisv
LyB0byByb3VuZCB0aGUgc2lnbmlmaWNhbmQgdG8gKG9yLCBwdXQgYW5vdGhlciB3YXksIHRoaXMg
bWV0aG9kIG9wdGlvbmFsbHkgcm91bmRzCisvLyB0byBhcmd1bWVudC1wbHVzLW9uZSBzaWduaWZp
Y2FudCBmaWd1cmVzKS4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9FeHBvbmVudGlhbChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVmVjdG9yPGNoYXIsIDIw
NDg+IGJ1Zihjb3VudCArIDEsIGMpOwotICAgIGJ1Zltjb3VudF0gPSAnXDAnOworICAgIC8vIEdl
dCB4ICh0aGUgZG91YmxlIHZhbHVlIG9mIHRoaXMsIHdoaWNoIHNob3VsZCBiZSBhIE51bWJlciku
CisgICAgZG91YmxlIHg7CisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpLCB4KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBy
ZXR1cm4gVVN0cmluZyhidWYuZGF0YSgpKTsKKyAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKKyAg
ICBpbnQgZGVjaW1hbFBsYWNlc0luRXhwb25lbnQ7CisgICAgYm9vbCBpc1VuZGVmaW5lZDsKKyAg
ICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhlYywgMCwgMjAsIGRlY2ltYWxQbGFj
ZXNJbkV4cG9uZW50LCBpc1VuZGVmaW5lZCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAidG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMCIpKTsKKworICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmlu
aXR5LgorICAgIGlmIChpc25hbih4KSB8fCBpc2luZih4KSkKKyAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJlcih4KSk7CisKKyAgICAvLyBSb3VuZCBpZiB0aGUgYXJn
dW1lbnQgaXMgbm90IHVuZGVmaW5lZCwgYWx3YXlzIGZvcm1hdCBhcyBleHBvbmVudGlhbC4KKyAg
ICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gaXNV
bmRlZmluZWQKKyAgICAgICAgPyBEZWNpbWFsTnVtYmVyKHgpLnRvU3RyaW5nRXhwb25lbnRpYWwo
YnVmZmVyKQorICAgICAgICA6IERlY2ltYWxOdW1iZXIoeCwgUm91bmRpbmdTaWduaWZpY2FudEZp
Z3VyZXMsIGRlY2ltYWxQbGFjZXNJbkV4cG9uZW50ICsgMSkudG9TdHJpbmdFeHBvbmVudGlhbChi
dWZmZXIpOworCisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5n
dGgpKTsKIH0KIAotc3RhdGljIGRvdWJsZSBpbnRQb3cxMChpbnQgZSkKKy8vIHRvRml4ZWQgY29u
dmVydHMgYSBudW1iZXIgdG8gYSBzdHJpbmcsIGFsd2F5cyBmb3JtYXR0aW5nIGFzIGFuIGEgZGVj
aW1hbCBmcmFjdGlvbi4KKy8vIFRoaXMgbWV0aG9kIHRha2VzIGFuIGFyZ3VtZW50IHNwZWNpZnlp
bmcgYSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gcm91bmQgdGhlCisvLyBzaWduaWZpY2Fu
ZCB0by4gSG93ZXZlciB3aGVuIGNvbnZlcnRpbmcgbGFyZ2UgdmFsdWVzICgxZSsyMSBhbmQgYWJv
dmUpIHRoaXMKKy8vIG1ldGhvZCB3aWxsIGluc3RlYWQgZmFsbGJhY2sgdG8gY2FsbGluZyBUb1N0
cmluZy4gCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4
ZWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgImV4
cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nIiBhbGdvcml0aG0gYW5kCi0gICAgLy8gbG9uZyBkb3Vi
bGUgdG8gcXVpY2tseSBhbmQgcHJlY2lzZWx5IGNhbGN1bGF0ZSBpbnRlZ2VyIHBvd2VycyBvZiAx
MC4wLgorICAgIC8vIEdldCB4ICh0aGUgZG91YmxlIHZhbHVlIG9mIHRoaXMsIHdoaWNoIHNob3Vs
ZCBiZSBhIE51bWJlcikuCisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB2ID0gdGhpc1ZhbHVlLmdldEpTTnVtYmVyKCk7CisgICAgaWYg
KCF2KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICBkb3VibGUg
eCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7CiAKLSAgICAvLyBUaGlzIGlzIGEgaGFuZHkgd29y
a2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQ0OTQ3NTY+CisgICAgLy8gR2V0IHRoZSBhcmd1
bWVudC4gCisgICAgaW50IGRlY2ltYWxQbGFjZXM7CisgICAgYm9vbCBpc1VuZGVmaW5lZDsgLy8g
VGhpcyBpcyBpZ25vcmVkOyB1bmRlZmluZWQgdHJlYXRlZCBhcyAwLgorICAgIGlmICghZ2V0SW50
ZWdlckFyZ3VtZW50SW5SYW5nZShleGVjLCAwLCAyMCwgZGVjaW1hbFBsYWNlcywgaXNVbmRlZmlu
ZWQpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3Io
ZXhlYywgInRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAiKSk7CisK
KyAgICAvLyAxNS43LjQuNS43IHN0YXRlcyAiSWYgeCA+PSAxMF4yMSwgdGhlbiBsZXQgbSA9IFRv
U3RyaW5nKHgpIgorICAgIC8vIFRoaXMgYWxzbyBjb3ZlcnMgSW5pbml0eSwgYW5kIHN0cnVjdHVy
ZSB0aGUgY2hlY2sgc28gdGhhdCBOYU4KKyAgICAvLyB2YWx1ZXMgYXJlIGFsc28gaGFuZGxlZCBi
eSBudW1iZXJUb1N0cmluZworICAgIGlmICghKGZhYnMoeCkgPCAxZSsyMSkpCisgICAgICAgIHJl
dHVybiBqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpOworCisgICAgLy8gVGhlIGNo
ZWNrIGFib3ZlIHdpbGwgcmV0dXJuIGZhbHNlIGZvciBOYU4gb3IgSW5maW5pdHksIHRoZXNlIHdp
bGwgYmUKKyAgICAvLyBoYW5kbGVkIGJ5IG51bWJlclRvU3RyaW5nLgorICAgIEFTU0VSVCghaXNu
YW4oeCkgJiYgIWlzaW5mKHgpKTsKKworICAgIC8vIENvbnZlcnQgdG8gZGVjaW1hbCB3aXRoIHJv
dW5kaW5nLCBhbmQgZm9ybWF0IGFzIGRlY2ltYWwuCisgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIg
YnVmZmVyOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IERlY2ltYWxOdW1iZXIoeCwgUm91bmRpbmdE
ZWNpbWFsUGxhY2VzLCBkZWNpbWFsUGxhY2VzKS50b1N0cmluZ0RlY2ltYWwoYnVmZmVyKTsKKyAg
ICByZXR1cm4ganNTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxlbmd0aCkpOworfQorCisv
LyB0b1ByZWNpc2lvbiBjb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZywgdGFrZWluZyBhbiBh
cmd1bWVudCBzcGVjaWZ5aW5nIGEKKy8vIG51bWJlciBvZiBzaWduaWZpY2FudCBmaWd1cmVzIHRv
IHJvdW5kIHRoZSBzaWduaWZpY2FuZCB0by4gRm9yIHBvc2l0aXZlCisvLyBleHBvbmVudCwgYWxs
IHZhbHVlcyB0aGF0IGNhbiBiZSByZXByZXNlbnRlZCB1c2luZyBhIGRlY2ltYWwgZnJhY3Rpb24g
d2lsbAorLy8gYmUsIGUuZy4gd2hlbiByb3VuZGluZyB0byAzIHMuZi4gYW55IHZhbHVlIHVwIHRv
IDk5OSB3aWxsIGJlIGZvcm1hdGVkIGFzIGEKKy8vIGRlY2ltYWwsIHdoaWxzdCAxMDAwIGlzIGNv
bnZlcnRlZCB0byB0aGUgZXhwb25lbnRpYWwgcmVwcmVzZW50YXRpb24gMS4wMGUrMy4KKy8vIEZv
ciBuZWdhdGl2ZSBleHBvbmVudHMgdmFsdWVzID49IDFlLTYgYXJlIGZvcm1hdGVkIGFzIGRlY2lt
YWwgZnJhY3Rpb25zLAorLy8gd2l0aCBzbWFsbGVyIHZhbHVlcyBjb252ZXJ0ZWQgdG8gZXhwb25l
bnRpYWwgcmVwcmVzZW50YXRpb24uCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICAvLyBHZXQgeCAo
dGhlIGRvdWJsZSB2YWx1ZSBvZiB0aGlzLCB3aGljaCBzaG91bGQgYmUgYSBOdW1iZXIpLgorICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUg
diA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOworICAgIGlmICghdikKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51
bWJlcigpOwogCi0gICAgaWYgKGUgPT0gMCkKLSAgICAgICAgcmV0dXJuIDEuMDsKKyAgICAvLyBH
ZXQgdGhlIGFyZ3VtZW50LiAKKyAgICBpbnQgc2lnbmlmaWNhbnRGaWd1cmVzOworICAgIGJvb2wg
aXNVbmRlZmluZWQ7CisgICAgaWYgKCFnZXRJbnRlZ2VyQXJndW1lbnRJblJhbmdlKGV4ZWMsIDEs
IDIxLCBzaWduaWZpY2FudEZpZ3VyZXMsIGlzVW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b1ByZWNpc2lvbigpIGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMSIpKTsKIAotICAgIGJvb2wgbmVnYXRpdmUg
PSBlIDwgMDsKLSAgICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2ZSA/IC1lIDogZTsKLQotICAgIGxv
bmcgZG91YmxlIHJlc3VsdCA9IDEwLjA7Ci0gICAgYm9vbCBmb3VuZE9uZSA9IGZhbHNlOwotICAg
IGZvciAoaW50IGJpdCA9IDMxOyBiaXQgPj0gMDsgYml0LS0pIHsKLSAgICAgICAgaWYgKCFmb3Vu
ZE9uZSkgewotICAgICAgICAgICAgaWYgKChleHAgPj4gYml0KSAmIDEpCi0gICAgICAgICAgICAg
ICAgZm91bmRPbmUgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICogcmVzdWx0OwotICAgICAgICAgICAgaWYgKChleHAgPj4gYml0KSAmIDEpCi0g
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTAuMDsKLSAgICAgICAgfQotICAgIH0K
KyAgICAvLyBUbyBwcmVjaXNpb24gY2FsbGVkIHdpdGggbm8gYXJndW1lbnQgaXMgdHJlYXRlZCBh
cyBUb1N0cmluZy4KKyAgICBpZiAoaXNVbmRlZmluZWQpCisgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpOworCisgICAgLy8gSGFuZGxlIE5hTiBhbmQgSW5m
aW5pdHkuCisgICAgaWYgKGlzbmFuKHgpIHx8IGlzaW5mKHgpKQorICAgICAgICByZXR1cm4ganNT
dHJpbmcoZXhlYywgVVN0cmluZzo6bnVtYmVyKHgpKTsKIAotICAgIGlmIChuZWdhdGl2ZSkKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oMS4wIC8gcmVzdWx0KTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZXN1bHQpOworICAgIC8vIENvbnZlcnQgdG8gZGVjaW1h
bCB3aXRoIHJvdW5kaW5nLgorICAgIERlY2ltYWxOdW1iZXIgbnVtYmVyKHgsIFJvdW5kaW5nU2ln
bmlmaWNhbnRGaWd1cmVzLCBzaWduaWZpY2FudEZpZ3VyZXMpOworICAgIC8vIElmIG51bWJlciBp
cyBpbiB0aGUgcmFuZ2UgMWUtNiA8PSB4IDwgcG93KDEwLCBzaWduaWZpY2FudEZpZ3VyZXMpIHRo
ZW4gZm9ybWF0CisgICAgLy8gYXMgZGVjaW1hbC4gT3RoZXJ3aXNlLCBmb3JtYXQgdGhlIG51bWJl
ciBhcyBhbiBleHBvbmVudGlhbC4gIERlY2ltYWwgZm9ybWF0CisgICAgLy8gZGVtYW5kcyBhIG1p
bmltdW0gb2YgKGV4cG9uZW50ICsgMSkgZGlnaXRzIHRvIHJlcHJlc2VudCBhIG51bWJlciwgZm9y
IGV4YW1wbGUKKyAgICAvLyAxMjM0ICgxLjIzNGUrMykgcmVxdWlyZXMgNCBkaWdpdHMuIChTZWUg
RUNNQS0yNjIgMTUuNy40LjcuMTAuYykKKyAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7
CisgICAgdW5zaWduZWQgbGVuZ3RoID0gbnVtYmVyLmV4cG9uZW50KCkgPj0gLTYgJiYgbnVtYmVy
LmV4cG9uZW50KCkgPCBzaWduaWZpY2FudEZpZ3VyZXMKKyAgICAgICAgPyBudW1iZXIudG9TdHJp
bmdEZWNpbWFsKGJ1ZmZlcikKKyAgICAgICAgOiBudW1iZXIudG9TdHJpbmdFeHBvbmVudGlhbChi
dWZmZXIpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBVU3RyaW5nKGJ1ZmZlciwgbGVuZ3Ro
KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9T
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQpAQCAtMTU0LDcgKzIxOSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG8KICAgICAgICAgcmFkaXggPSBzdGF0aWNfY2FzdDxp
bnQ+KHJhZGl4VmFsdWUudG9JbnRlZ2VyKGV4ZWMpKTsgLy8gbmFuIC0+IDAKIAogICAgIGlmIChy
YWRpeCA9PSAxMCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVj
LCB2LnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCB2LnRv
U3RyaW5nKGV4ZWMpKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkaWdpdHMgPSAi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKIApAQCAtMjQzLDIzNyArMzA4
LDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90bwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodik7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bnVtYmVyUHJvdG9GdW5jVG9GaXhlZChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSB2ID0gdGhpc1Zh
bHVlLmdldEpTTnVtYmVyKCk7Ci0gICAgaWYgKCF2KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKLQotICAgIEpTVmFsdWUgZnJhY3Rpb25EaWdpdHMgPSBleGVjLT5hcmd1
bWVudCgwKTsKLSAgICBkb3VibGUgZGYgPSBmcmFjdGlvbkRpZ2l0cy50b0ludGVnZXIoZXhlYyk7
Ci0gICAgaWYgKCEoZGYgPj0gMCAmJiBkZiA8PSAyMCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAidG9GaXhlZCgpIGRpZ2l0cyBhcmd1
bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAiKSk7Ci0gICAgaW50IGYgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGRmKTsKLQotICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIoKTsKLSAg
ICBpZiAoaXNuYW4oeCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2
aWFsU3RyaW5nKGV4ZWMsICJOYU4iKSk7Ci0KLSAgICBVU3RyaW5nIHM7Ci0gICAgaWYgKHggPCAw
KSB7Ci0gICAgICAgIHMgPSAiLSI7Ci0gICAgICAgIHggPSAteDsKLSAgICB9IGVsc2UgewotICAg
ICAgICBzID0gIiI7Ci0gICAgICAgIGlmICh4ID09IC0wLjApCi0gICAgICAgICAgICB4ID0gMDsK
LSAgICB9Ci0KLSAgICBpZiAoeCA+PSBwb3coMTAuMCwgMjEuMCkpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhzLCBVU3RyaW5nOjpudW1i
ZXIoeCkpKSk7Ci0KLSAgICBjb25zdCBkb3VibGUgdGVuVG9UaGVGID0gcG93KDEwLjAsIGYpOwot
ICAgIGRvdWJsZSBuID0gZmxvb3IoeCAqIHRlblRvVGhlRik7Ci0gICAgaWYgKGZhYnMobiAvIHRl
blRvVGhlRiAtIHgpID49IGZhYnMoKG4gKyAxKSAvIHRlblRvVGhlRiAtIHgpKQotICAgICAgICBu
Kys7Ci0KLSAgICBVU3RyaW5nIG0gPSBpbnRlZ2VyUGFydE5vRXhwKG4pOwotCi0gICAgaW50IGsg
PSBtLmxlbmd0aCgpOwotICAgIGlmIChrIDw9IGYpIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciB6
OwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGYgKyAxIC0gazsgaSsrKQotICAgICAgICAg
ICAgei5hcHBlbmQoJzAnKTsKLSAgICAgICAgei5hcHBlbmQobSk7Ci0gICAgICAgIG0gPSB6LmJ1
aWxkKCk7Ci0gICAgICAgIGsgPSBmICsgMTsKLSAgICAgICAgQVNTRVJUKGsgPT0gc3RhdGljX2Nh
c3Q8aW50PihtLmxlbmd0aCgpKSk7Ci0gICAgfQotICAgIGludCBrTWludXNmID0gayAtIGY7Ci0K
LSAgICBpZiAoa01pbnVzZiA8IHN0YXRpY19jYXN0PGludD4obS5sZW5ndGgoKSkpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhzLCBtLnN1
YnN0cmluZ1NoYXJpbmdJbXBsKDAsIGtNaW51c2YpLCAiLiIsIG0uc3Vic3RyaW5nU2hhcmluZ0lt
cGwoa01pbnVzZikpKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVj
LCBtYWtlU3RyaW5nKHMsIG0uc3Vic3RyaW5nU2hhcmluZ0ltcGwoMCwga01pbnVzZikpKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGZyYWN0aW9uYWxQYXJ0VG9TdHJpbmcoY2hhciogYnVmLCBpbnQmIGks
IGNvbnN0IGNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgaW50IGZyYWN0aW9uYWxEaWdp
dHMpCi17Ci0gICAgaWYgKGZyYWN0aW9uYWxEaWdpdHMgPD0gMCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaW50IGZEaWdpdHNJblJlc3VsdCA9IHN0YXRpY19jYXN0PGludD4ocmVzdWx0TGVuZ3Ro
KSAtIDE7Ci0gICAgYnVmW2krK10gPSAnLic7Ci0gICAgaWYgKGZEaWdpdHNJblJlc3VsdCA+IDAp
IHsKLSAgICAgICAgaWYgKGZyYWN0aW9uYWxEaWdpdHMgPCBmRGlnaXRzSW5SZXN1bHQpIHsKLSAg
ICAgICAgICAgIHN0cm5jcHkoYnVmICsgaSwgcmVzdWx0ICsgMSwgZnJhY3Rpb25hbERpZ2l0cyk7
Ci0gICAgICAgICAgICBpICs9IGZyYWN0aW9uYWxEaWdpdHM7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaSArIHJlc3VsdExlbmd0aCAtIDEgPCA4MCk7Ci0gICAgICAgICAg
ICBtZW1jcHkoYnVmICsgaSwgcmVzdWx0ICsgMSwgcmVzdWx0TGVuZ3RoIC0gMSk7Ci0gICAgICAg
ICAgICBpICs9IHN0YXRpY19jYXN0PGludD4ocmVzdWx0TGVuZ3RoKSAtIDE7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBmb3IgKGludCBqID0gMDsgaiA8IGZyYWN0aW9uYWxEaWdpdHMgLSBmRGln
aXRzSW5SZXN1bHQ7IGorKykKLSAgICAgICAgYnVmW2krK10gPSAnMCc7Ci19Ci0KLXN0YXRpYyB2
b2lkIGV4cG9uZW50aWFsUGFydFRvU3RyaW5nKGNoYXIqIGJ1ZiwgaW50JiBpLCBpbnQgZGVjaW1h
bFBvaW50KQotewotICAgIGJ1ZltpKytdID0gJ2UnOwotICAgIC8vIGRlY2ltYWxQb2ludCBjYW4n
dCBiZSBtb3JlIHRoYW4gMyBkaWdpdHMgZGVjaW1hbCBnaXZlbiB0aGUKLSAgICAvLyBuYXR1cmUg
b2YgZmxvYXQgcmVwcmVzZW50YXRpb24KLSAgICBpbnQgZXhwb25lbnRpYWwgPSBkZWNpbWFsUG9p
bnQgLSAxOwotICAgIGJ1ZltpKytdID0gKGV4cG9uZW50aWFsID49IDApID8gJysnIDogJy0nOwot
ICAgIGlmIChleHBvbmVudGlhbCA8IDApCi0gICAgICAgIGV4cG9uZW50aWFsICo9IC0xOwotICAg
IGlmIChleHBvbmVudGlhbCA+PSAxMDApCi0gICAgICAgIGJ1ZltpKytdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oJzAnICsgZXhwb25lbnRpYWwgLyAxMDApOwotICAgIGlmIChleHBvbmVudGlhbCA+PSAx
MCkKLSAgICAgICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyAoZXhwb25lbnRp
YWwgJSAxMDApIC8gMTApOwotICAgIGJ1ZltpKytdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oJzAnICsg
ZXhwb25lbnRpYWwgJSAxMCk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVt
YmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSB2ID0gdGhp
c1ZhbHVlLmdldEpTTnVtYmVyKCk7Ci0gICAgaWYgKCF2KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKLQotICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIo
KTsKLQotICAgIGlmIChpc25hbih4KSB8fCBpc2luZih4KSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpKTsKLQotICAgIEpT
VmFsdWUgZnJhY3Rpb25hbERpZ2l0c1ZhbHVlID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgZG91
YmxlIGRmID0gZnJhY3Rpb25hbERpZ2l0c1ZhbHVlLnRvSW50ZWdlcihleGVjKTsKLSAgICBpZiAo
IShkZiA+PSAwICYmIGRmIDw9IDIwKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBi
ZXR3ZWVuIDAgYW5kIDIwIikpOwotICAgIGludCBmcmFjdGlvbmFsRGlnaXRzID0gc3RhdGljX2Nh
c3Q8aW50PihkZik7Ci0gICAgYm9vbCBpbmNsdWRlQWxsRGlnaXRzID0gZnJhY3Rpb25hbERpZ2l0
c1ZhbHVlLmlzVW5kZWZpbmVkKCk7Ci0KLSAgICBpbnQgZGVjaW1hbEFkanVzdCA9IDA7Ci0gICAg
aWYgKHggJiYgIWluY2x1ZGVBbGxEaWdpdHMpIHsKLSAgICAgICAgZG91YmxlIGxvZ3ggPSBmbG9v
cihsb2cxMChmYWJzKHgpKSk7Ci0gICAgICAgIHggLz0gcG93KDEwLjAsIGxvZ3gpOwotICAgICAg
ICBjb25zdCBkb3VibGUgdGVuVG9UaGVGID0gcG93KDEwLjAsIGZyYWN0aW9uYWxEaWdpdHMpOwot
ICAgICAgICBkb3VibGUgZnggPSBmbG9vcih4ICogdGVuVG9UaGVGKSAvIHRlblRvVGhlRjsKLSAg
ICAgICAgZG91YmxlIGN4ID0gY2VpbCh4ICogdGVuVG9UaGVGKSAvIHRlblRvVGhlRjsKLQotICAg
ICAgICBpZiAoZmFicyhmeCAtIHgpIDwgZmFicyhjeCAtIHgpKQotICAgICAgICAgICAgeCA9IGZ4
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB4ID0gY3g7Ci0KLSAgICAgICAgZGVjaW1hbEFk
anVzdCA9IHN0YXRpY19jYXN0PGludD4obG9neCk7Ci0gICAgfQotCi0gICAgaWYgKGlzbmFuKHgp
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyhleGVj
LCAiTmFOIikpOwotCi0gICAgaWYgKHggPT0gLTAuMCkgLy8gKC0wLjApLnRvRXhwb25lbnRpYWwo
KSBzaG91bGQgcHJpbnQgYXMgMCBpbnN0ZWFkIG9mIC0wCi0gICAgICAgIHggPSAwOwotCi0gICAg
aW50IGRlY2ltYWxQb2ludDsKLSAgICBpbnQgc2lnbjsKLSAgICBjaGFyIHJlc3VsdFs4MF07Ci0g
ICAgV1RGOjpkdG9hKHJlc3VsdCwgeCwgMCwgJmRlY2ltYWxQb2ludCwgJnNpZ24sIE5VTEwpOwot
ICAgIHNpemVfdCByZXN1bHRMZW5ndGggPSBzdHJsZW4ocmVzdWx0KTsKLSAgICBkZWNpbWFsUG9p
bnQgKz0gZGVjaW1hbEFkanVzdDsKLQotICAgIGludCBpID0gMDsKLSAgICBjaGFyIGJ1Zls4MF07
IC8vIGRpZ2l0ICsgJy4nICsgZnJhY3Rpb25EaWdpdHMgKG1heCAyMCkgKyAnZScgKyBzaWduICsg
ZXhwb25lbnQgKG1heD8pCi0gICAgaWYgKHNpZ24pCi0gICAgICAgIGJ1ZltpKytdID0gJy0nOwot
Ci0gICAgLy8gPyA5OTk5IGlzIHRoZSBtYWdpY2FsICJyZXN1bHQgaXMgSW5mIG9yIE5hTiIgdmFs
dWUuICB3aGF0J3MgOTk5Pz8KLSAgICBpZiAoZGVjaW1hbFBvaW50ID09IDk5OSkgewotICAgICAg
ICBBU1NFUlQoaSArIHJlc3VsdExlbmd0aCA8IDgwKTsKLSAgICAgICAgbWVtY3B5KGJ1ZiArIGks
IHJlc3VsdCwgcmVzdWx0TGVuZ3RoKTsKLSAgICAgICAgYnVmW2kgKyByZXN1bHRMZW5ndGhdID0g
J1wwJzsKLSAgICB9IGVsc2UgewotICAgICAgICBidWZbaSsrXSA9IHJlc3VsdFswXTsKLQotICAg
ICAgICBpZiAoaW5jbHVkZUFsbERpZ2l0cykKLSAgICAgICAgICAgIGZyYWN0aW9uYWxEaWdpdHMg
PSBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdExlbmd0aCkgLSAxOwotCi0gICAgICAgIGZyYWN0aW9u
YWxQYXJ0VG9TdHJpbmcoYnVmLCBpLCByZXN1bHQsIHJlc3VsdExlbmd0aCwgZnJhY3Rpb25hbERp
Z2l0cyk7Ci0gICAgICAgIGV4cG9uZW50aWFsUGFydFRvU3RyaW5nKGJ1ZiwgaSwgZGVjaW1hbFBv
aW50KTsKLSAgICAgICAgYnVmW2krK10gPSAnXDAnOwotICAgIH0KLSAgICBBU1NFUlQoaSA8PSA4
MCk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIGJ1ZikpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lz
aW9uKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNOdW1iZXIoKTsK
LSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotCi0g
ICAgZG91YmxlIGRvdWJsZVByZWNpc2lvbiA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50ZWdlclBy
ZXNlcnZlTmFOKGV4ZWMpOwotICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIoKTsK
LSAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSB8fCBpc25hbih4KSB8fCBp
c2luZih4KSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCB2
LnRvU3RyaW5nKGV4ZWMpKSk7Ci0KLSAgICBVU3RyaW5nIHM7Ci0gICAgaWYgKHggPCAwKSB7Ci0g
ICAgICAgIHMgPSAiLSI7Ci0gICAgICAgIHggPSAteDsKLSAgICB9IGVsc2UKLSAgICAgICAgcyA9
ICIiOwotCi0gICAgaWYgKCEoZG91YmxlUHJlY2lzaW9uID49IDEgJiYgZG91YmxlUHJlY2lzaW9u
IDw9IDIxKSkgLy8gdHJ1ZSBmb3IgTmFOCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAidG9QcmVjaXNpb24oKSBhcmd1bWVudCBtdXN0IGJl
IGJldHdlZW4gMSBhbmQgMjEiKSk7Ci0gICAgaW50IHByZWNpc2lvbiA9IHN0YXRpY19jYXN0PGlu
dD4oZG91YmxlUHJlY2lzaW9uKTsKLQotICAgIGludCBlID0gMDsKLSAgICBVU3RyaW5nIG07Ci0g
ICAgaWYgKHgpIHsKLSAgICAgICAgZSA9IHN0YXRpY19jYXN0PGludD4obG9nMTAoeCkpOwotICAg
ICAgICBkb3VibGUgdGVucyA9IGludFBvdzEwKGUgLSBwcmVjaXNpb24gKyAxKTsKLSAgICAgICAg
ZG91YmxlIG4gPSBmbG9vcih4IC8gdGVucyk7Ci0gICAgICAgIGlmIChuIDwgaW50UG93MTAocHJl
Y2lzaW9uIC0gMSkpIHsKLSAgICAgICAgICAgIGUgPSBlIC0gMTsKLSAgICAgICAgICAgIHRlbnMg
PSBpbnRQb3cxMChlIC0gcHJlY2lzaW9uICsgMSk7Ci0gICAgICAgICAgICBuID0gZmxvb3IoeCAv
IHRlbnMpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGZhYnMoKG4gKyAxLjApICogdGVucyAt
IHgpIDw9IGZhYnMobiAqIHRlbnMgLSB4KSkKLSAgICAgICAgICAgICsrbjsKLSAgICAgICAgLy8g
bWFpbnRhaW4gbiA8IDEwXihwcmVjaXNpb24pCi0gICAgICAgIGlmIChuID49IGludFBvdzEwKHBy
ZWNpc2lvbikpIHsKLSAgICAgICAgICAgIG4gLz0gMTAuMDsKLSAgICAgICAgICAgIGUgKz0gMTsK
LSAgICAgICAgfQotICAgICAgICBBU1NFUlQoaW50UG93MTAocHJlY2lzaW9uIC0gMSkgPD0gbik7
Ci0gICAgICAgIEFTU0VSVChuIDwgaW50UG93MTAocHJlY2lzaW9uKSk7Ci0KLSAgICAgICAgbSA9
IGludGVnZXJQYXJ0Tm9FeHAobik7Ci0gICAgICAgIGlmIChlIDwgLTYgfHwgZSA+PSBwcmVjaXNp
b24pIHsKLSAgICAgICAgICAgIGlmIChtLmxlbmd0aCgpID4gMSkKLSAgICAgICAgICAgICAgICBt
ID0gbWFrZVN0cmluZyhtLnN1YnN0cmluZ1NoYXJpbmdJbXBsKDAsIDEpLCAiLiIsIG0uc3Vic3Ry
aW5nU2hhcmluZ0ltcGwoMSkpOwotICAgICAgICAgICAgaWYgKGUgPj0gMCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywg
cywgbSwgImUrIiwgVVN0cmluZzo6bnVtYmVyKGUpKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgcywgbSwgImUtIiwgVVN0
cmluZzo6bnVtYmVyKC1lKSkpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbSA9
IGNoYXJTZXF1ZW5jZSgnMCcsIHByZWNpc2lvbik7Ci0gICAgICAgIGUgPSAwOwotICAgIH0KLQot
ICAgIGlmIChlID09IHByZWNpc2lvbiAtIDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhzLCBtKSkpOwotICAgIGlmIChlID49IDApIHsK
LSAgICAgICAgaWYgKGUgKyAxIDwgc3RhdGljX2Nhc3Q8aW50PihtLmxlbmd0aCgpKSkKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbWFrZVN0cmluZyhz
LCBtLnN1YnN0cmluZ1NoYXJpbmdJbXBsKDAsIGUgKyAxKSwgIi4iLCBtLnN1YnN0cmluZ1NoYXJp
bmdJbXBsKGUgKyAxKSkpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmlu
ZyhleGVjLCBtYWtlU3RyaW5nKHMsIG0pKSk7Ci0gICAgfQotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBzLCAiMC4iLCBjaGFyU2VxdWVuY2Uo
JzAnLCAtKGUgKyAxKSksIG0pKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVVN0cmluZy5jcHAJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENv
cmUvcnVudGltZS9VU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAog
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJDb2xsZWN0
b3IuaCIKLSNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxjdHlwZS5oPgpAQCAtMzksNiArMzgsNyBAQAog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9VVEY4Lmg+CiAKICNpZiBIQVZFKFNUUklOR1NfSCkK
QEAgLTE5OCwxMCArMTk4LDggQEAgVVN0cmluZyBVU3RyaW5nOjpudW1iZXIobG9uZyBsKQogCiBV
U3RyaW5nIFVTdHJpbmc6Om51bWJlcihkb3VibGUgZCkKIHsKLSAgICBEdG9hQnVmZmVyIGJ1ZmZl
cjsKLSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0gICAgZG91YmxlVG9TdHJpbmdJbkphdmFTY3JpcHRG
b3JtYXQoZCwgYnVmZmVyLCAmbGVuZ3RoKTsKLSAgICByZXR1cm4gVVN0cmluZyhidWZmZXIsIGxl
bmd0aCk7CisgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIHJldHVybiBTdHJp
bmdJbXBsOjpjcmVhdGUoYnVmZmVyLCBudW1iZXJUb1N0cmluZyhkLCBidWZmZXIpKTsKIH0KIAog
VVN0cmluZyBVU3RyaW5nOjpzdWJzdHJpbmdTaGFyaW5nSW1wbCh1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkgY29uc3QKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVt
YmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAko
cmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9EZWNpbWFsTnVtYmVyLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgRGVjaW1hbE51bWJlcl9oCisjZGVmaW5lIERlY2ltYWxO
dW1iZXJfaAorCisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2VudW0gUm91bmRpbmdTaWduaWZpY2FudEZp
Z3VyZXNUeXBlIHsgUm91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXMgfTsKK2VudW0gUm91bmRpbmdE
ZWNpbWFsUGxhY2VzVHlwZSB7IFJvdW5kaW5nRGVjaW1hbFBsYWNlcyB9OworCitjbGFzcyBEZWNp
bWFsTnVtYmVyIHsKK3B1YmxpYzoKKyAgICBEZWNpbWFsTnVtYmVyKGRvdWJsZSBkKQorICAgIHsK
KyAgICAgICAgYm9vbCBzaWduID0gZCA8IDA7IC8vIFRoaXMgKGNvcnJlY3RseSkgaWdub3JlcyB0
aGUgc2lnbiBvbiAtMC4wLgorICAgICAgICBpbml0KHNpZ24sIGQpOworICAgIH0KKworICAgIC8v
IElmIG91ciB2ZXJzaW9uIG9mIGR0b2EgY291bGQgcm91bmQgdG8gYSBnaXZlbiBudW1iZXIgb2Yg
c2lnbmlmaWNhbnQgZmlndXJlcyB0aGVuCisgICAgLy8gd2UgY291bGQgcmVtb3ZlIHRoZSBwcmUt
cm91bmRpbmcgY29kZSBmcm9tIGhlcmUuICBXZSBjb3VsZCBhbHNvIGRvIHNvIGp1c3QgYnkKKyAg
ICAvLyBjYWxsaW5nIGR0b2EgYW5kIHBvc3Qtcm91bmRpbmcsIGhvd2V2ZXIgY3VycmVudGx5IHRo
aXMgaXMgc2xvd2VyLCBzaW5jZSBpdCBmb3JjZXMKKyAgICAvLyBkdG9hIHRvIGdlbmVyYXRlIGEg
aGlnaGVyIHByZXNpc2lvbiByZXN1bHQuCisgICAgRGVjaW1hbE51bWJlcihkb3VibGUgZCwgUm91
bmRpbmdTaWduaWZpY2FudEZpZ3VyZXNUeXBlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMp
CisgICAgeworICAgICAgICBBU1NFUlQoIWlzbmFuKGQpICYmICFpc2luZihkKSk7CisgICAgICAg
IEFTU0VSVChzaWduaWZpY2FudEZpZ3VyZXMgJiYgc2lnbmlmaWNhbnRGaWd1cmVzIDw9IDIxKTsK
KworICAgICAgICBib29sIHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBpZ25vcmVz
IHRoZSBzaWduIG9uIC0wLjAuCisgICAgICAgIGQgPSBmYWJzKGQpOyAvLyBtYWtlIGQgcG9zaXRp
dmUgYmVmb3JlIGdvaW5nIGFueSBmdXJ0aGVyLgorCisgICAgICAgIGludCBhZGp1c3QgPSAwOwor
ICAgICAgICBpZiAoZCkgeworICAgICAgICAgICAgLy8gVG8gcm91bmQgYSBudW1iZXIgd2UgYWxp
Z24gaXQgc3VjaCB0aGF0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBkaWdpdHMgYXJlCisgICAgICAg
ICAgICAvLyB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludCwgdGhlbiBmbG9vci9jZWls
LiAgRm9yIGV4YW1wbGUsIHRvIHJvdW5kCisgICAgICAgICAgICAvLyAxMzU3OSB0byAzIHMuZi4g
d2UgZmlyc3QgYWRqdXN0IGl0IHRvIDEzNS43OSwgdXNlIGZsb29yL2NlaWwgdG8gb2J0YWluIHRo
ZQorICAgICAgICAgICAgLy8gdmFsdWVzIDEzNS8xMzYsIGFuZCB0aGVuIHNlbGVjdCAxMzYgKHNp
bmNlIHRoaXMgaXMgY2xvc2VzdCB0byAxMzUuNzkpLgorICAgICAgICAgICAgLy8gVGhlcmUgYXJl
IGN1cnJlbnRseSAoZXhwICsgMSkgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIHBv
aW50LAorICAgICAgICAgICAgLy8gYW5kIHdlIHdhbnQgdGhzaSB0byBiZSBzaWduaWZpY2FudEZp
Z3VyZXMsIHNvIHdlJ3JlIGdvaW5nIHRvIGFkanVzdCB0aGUKKyAgICAgICAgICAgIC8vIGV4cG9u
ZW50IGJ5ICgoZXhwICsgMSkgLSBzaWduaWZpY2FudEZpZ3VyZXMpLiAgQWRqdXN0IGlzIGVmZmVj
dGl2ZWx5CisgICAgICAgICAgICAvLyBhIGNvdW50IG9mIGhvdyBtYW55IGRlY2ltYWwgZGlnaXRz
IHRvIHJpZ2h0LXNoaWZ0IHRoZSBudW1iZXIgYnkuCisgICAgICAgICAgICBpbnQgZXhwID0gZmxv
b3IobG9nMTAoZCkpOworICAgICAgICAgICAgYWRqdXN0ID0gKGV4cCArIDEpIC0gc2lnbmlmaWNh
bnRGaWd1cmVzOworCisgICAgICAgICAgICAvLyBJZiB0aGUgYWRqdXN0IHZhbHVlIG1pZ2h0IGJl
IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIC0gb3IgemVyby4gIElmIHplcm8sIHRoZW4KKyAgICAgICAg
ICAgIC8vIG5vdGhpbmcgdG8gZG8hIC0gdGhlIG51bWJlciBpcyBhbHJlYWR5IGFwcHJvcHJpYXRl
bHkgYWxpZ25lZC4gIElmIGFkanVzdAorICAgICAgICAgICAgLy8gaXMgcG9zaXRpdmUgdGhlbiBk
aXZpZGUgZCBieSAxMF5hZGp1c3QuICBJZiBhZGp1c3QgaXMgbmVnYXRpdmUgbXVsdGlwbHkgZAor
ICAgICAgICAgICAgLy8gYnkgMTBeLWFkanVzdC4gVGhpcyBpcyBtYXRoZW1hdGljYWxseSB0aGUg
c2FtZSwgYnV0IGF2b2lkcyB0d28gZnAgZGl2aWRlcworICAgICAgICAgICAgLy8gKG9uZSBpbnNp
ZGUgaW50UG93MTAsIHdoZXJlIHRoZSBwb3dlciBpcyBuZWdhdGl2ZSkuCisgICAgICAgICAgICBp
ZiAoYWRqdXN0ID4gMCkKKyAgICAgICAgICAgICAgICBkIC89IGludFBvdzEwKGFkanVzdCk7Cisg
ICAgICAgICAgICBlbHNlIGlmIChhZGp1c3QgPCAwKQorICAgICAgICAgICAgICAgIGQgKj0gaW50
UG93MTAoLWFkanVzdCk7CisKKyAgICAgICAgICAgIC8vIFRyeSByb3VuZGluZyB1cCAmIHJvdW5k
aW5nIGRvd24sIHNlbGVjdCB3aGljaGV2ZXIgaXMgY2xvc2VzdCAocm91bmRpbmcgdXAgaWYgZXF1
YWwgZGlzdGFuY2UpLgorICAgICAgICAgICAgZG91YmxlIGZsb29yT2ZEID0gZmxvb3IoZCk7Cisg
ICAgICAgICAgICBkb3VibGUgY2VpbE9mRCA9IGZsb29yT2ZEICsgMTsKKyAgICAgICAgICAgIGQg
PSAoZmFicyhjZWlsT2ZEIC0gZCkgPD0gZmFicyhmbG9vck9mRCAtIGQpKSA/IGNlaWxPZkQgOiBm
bG9vck9mRDsKKworICAgICAgICAgICAgLy8gVGhlIG51bWJlcidzIGV4cG9uZW50IGhhcyBiZWVu
IGFsdGVyZWQgLSBidXQgZG9uJ3QgY2hhbmdlIGl0IGJhY2shICBXZSBjYW4KKyAgICAgICAgICAg
IC8vIGp1c3QgcnVuIGR0b2Egb24gdGhlIG1vZGlmaWVkIHZhbHVlLCBhbmQgYWRqdXN0IHRoZSBl
eHBvbmVudCBhZnRlcndhcmQgdG8KKyAgICAgICAgICAgIC8vIGFjY291bnQgZm9yIHRoaXMuCisg
ICAgICAgIH0KKworICAgICAgICBpbml0KHNpZ24sIGQpOworCisgICAgICAgIC8vIFdlIGFsdGVy
ZXJlZCB0aGUgdmFsdWUgd2hlbiByb3VuZGluZyBpdCAtIG1vZGlmeSB0aGUgZXhwb25lbnQgdG8g
YWRqdXN0IGZvciB0aGlzLAorICAgICAgICAvLyBidXQgZG9uJ3QgbWVzcyB3aXRoIHRoZSBleHBv
bmVudCBvZiB6ZXJvLgorICAgICAgICBpZiAoIWlzWmVybygpKQorICAgICAgICAgICAgbV9leHBv
bmVudCArPSBhZGp1c3Q7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzaWduaWZpY2FuZCBk
b2VzIG5vdCBjb250YWluIG1vcmUgZGlnaXRzIHRoYW4gcmVxdWVzdGVkLgorICAgICAgICByb3Vu
ZFRvUHJlY2lzaW9uKHNpZ25pZmljYW50RmlndXJlcyk7CisgICAgfQorCisgICAgLy8gSWYgb3Vy
IHZlcnNpb24gb2YgZHRvYSBjb3VsZCByb3VuZCB0byBhIGdpdmVuIG51bWJlciBvZiBkZWNpbWFs
IHBsYWNlcyB0aGVuIHdlCisgICAgLy8gY291bGQgcmVtb3ZlIHRoZSBwcmUtcm91bmRpbmcgY29k
ZSBmcm9tIGhlcmUuICBXZSBjb3VsZCBhbHNvIGRvIHNvIGp1c3QgYnkgY2FsbGluZworICAgIC8v
IGR0b2EgYW5kIHBvc3Qtcm91bmRpbmcsIGhvd2V2ZXIgY3VycmVudGx5IHRoaXMgaXMgc2xvd2Vy
LCBzaW5jZSBpdCBmb3JjZXMgZHRvYSB0bworICAgIC8vIGdlbmVyYXRlIGEgaGlnaGVyIHByZXNp
c2lvbiByZXN1bHQuCisgICAgRGVjaW1hbE51bWJlcihkb3VibGUgZCwgUm91bmRpbmdEZWNpbWFs
UGxhY2VzVHlwZSwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcykgeworICAgICAgICBBU1NFUlQoIWlz
bmFuKGQpICYmICFpc2luZihkKSk7CisgICAgICAgIEFTU0VSVChkZWNpbWFsUGxhY2VzIDw9IDIw
KTsKKworICAgICAgICBib29sIHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBpZ25v
cmVzIHRoZSBzaWduIG9uIC0wLjAuCisgICAgICAgIGQgPSBmYWJzKGQpOyAvLyBNYWtlIGQgcG9z
aXRpdmUgYmVmb3JlIGdvaW5nIGFueSBmdXJ0aGVyLgorCisgICAgICAgIEFTU0VSVChkIDwgMWUr
MjEpOyAvLyBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCByb3VuZGluZyB0byBkZWNpbWFsIHBs
YWNlcyBmb3IgdmFsdWVzID49IDFlKzIxLgorCisgICAgICAgIC8vIEFkanVzdCB0aGUgbnVtYmVy
IGJ5IGluY3JlYXNpbmcgdGhlIGV4cG9uZW50IGJ5IGRlY2ltYWxQbGFjZXMsIHN1Y2gKKyAgICAg
ICAgLy8gdGhhdCB3ZSBjYW4gcm91bmQgdG8gdGhpcyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMg
anNpbmcgZmxvb3IuCisgICAgICAgIGlmIChkZWNpbWFsUGxhY2VzKQorICAgICAgICAgICAgZCAq
PSBpbnRQb3cxMChkZWNpbWFsUGxhY2VzKTsKKyAgICAgICAgLy8gVHJ5IHJvdW5kaW5nIHVwICYg
cm91bmRpbmcgZG93biwgc2VsZWN0IHdoaWNoZXZlciBpcyBjbG9zZXN0IChyb3VuZGluZyB1cCBp
ZiBlcXVhbCBkaXN0YW5jZSkuCisgICAgICAgIGRvdWJsZSBmbG9vck9mRCA9IGZsb29yKGQpOwor
ICAgICAgICBkb3VibGUgY2VpbE9mRCA9IGZsb29yT2ZEICsgMTsKKyAgICAgICAgZCA9IChmYWJz
KGNlaWxPZkQgLSBkKSA8PSBmYWJzKGZsb29yT2ZEIC0gZCkpID8gY2VpbE9mRCA6IGZsb29yT2ZE
OworICAgICAgICAvLyBUaGUgbnVtYmVyJ3MgZXhwb25lbnQgaGFzIGJlZW4gYWx0ZXJlZCAtIGJ1
dCBkb24ndCBjaGFuZ2UgaXQgYmFjayEgIFdlIGNhbgorICAgICAgICAvLyBqdXN0IHJ1biBkdG9h
IG9uIHRoZSBtb2RpZmllZCB2YWx1ZSwgYW5kIGFkanVzdCB0aGUgZXhwb25lbnQgYWZ0ZXJ3YXJk
IHRvCisgICAgICAgIC8vIGFjY291bnQgZm9yIHRoaXMuCisKKyAgICAgICAgaW5pdChzaWduLCBk
KTsKKworICAgICAgICAvLyBXZSByb3VuZWQgdGhlIHZhbHVlIGJlZm9yZSBjYWxsaW5nIGR0b2Es
IHNvIHRoZSByZXN1bHQgc2hvdWxkIG5vdCBiZSBmcmFjdGlvbmFsLgorICAgICAgICBBU1NFUlQo
bV9leHBvbmVudCA+PSAwKTsKKworICAgICAgICAvLyBXZSBhbHRlcmVyZWQgdGhlIHZhbHVlIHdo
ZW4gcm91bmRpbmcgaXQgLSBtb2RpZnkgdGhlIGV4cG9uZW50IHRvIGFkanVzdCBmb3IgdGhpcywK
KyAgICAgICAgLy8gYnV0IGRvbid0IG1lc3Mgd2l0aCB0aGUgZXhwb25lbnQgb2YgemVyby4KKyAg
ICAgICAgaWYgKCFpc1plcm8oKSkKKyAgICAgICAgICAgIG1fZXhwb25lbnQgLT0gZGVjaW1hbFBs
YWNlczsKKworICAgICAgICAvLyBUaGUgdmFsdWUgd2FzIDwgMWUrMjEgYmVmb3JlIHdlIHN0YXJ0
ZWQsIHNob3VsZCBzdGlsbCBiZS4KKyAgICAgICAgQVNTRVJUKG1fZXhwb25lbnQgPCAyMSk7CisK
KyAgICAgICAgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzID0gMSArIG1fZXhwb25lbnQgKyBk
ZWNpbWFsUGxhY2VzOworICAgICAgICBBU1NFUlQoc2lnbmlmaWNhbnRGaWd1cmVzICYmIHNpZ25p
ZmljYW50RmlndXJlcyA8PSA0MSk7CisgICAgICAgIHJvdW5kVG9QcmVjaXNpb24oc2lnbmlmaWNh
bnRGaWd1cmVzKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB0b1N0cmluZ0RlY2ltYWwoTnVtYmVy
VG9TdHJpbmdCdWZmZXImIGJ1ZmZlcikKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBhbHdheXMg
YmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRvIGFkZCB0byB0aGUgc3RyaW5nIQorICAgICAgICBBU1NF
UlQobV9wcmVjaXNpb24pOworICAgICAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKworICAgICAg
ICAvLyBpZiB0aGUgZXhwb25lbnQgaXMgbmVnYXRpdmUgdGhlIG51bWJlciBkZWNpbWFsIHJlcHJl
c2VudGF0aW9uIGlzIG9mIHRoZSBmb3JtOgorICAgICAgICAvLyBbPHNpZ24+XTAuWzx6ZXJvcz5d
PHNpZ25pZmljYW5kPgorICAgICAgICBpZiAobV9leHBvbmVudCA8IDApIHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIHplcm9zID0gLW1fZXhwb25lbnQgLSAxOworCisgICAgICAgICAgICBpZiAobV9z
aWduKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisgICAgICAgICAgICAqbmV4dCsr
ID0gJzAnOworICAgICAgICAgICAgKm5leHQrKyA9ICcuJzsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCB6ZXJvczsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSAn
MCc7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcmVjaXNpb247ICsr
aSkKKyAgICAgICAgICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKworICAgICAg
ICAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CisgICAgICAgIH0KKworICAgICAgICB1bnNpZ25l
ZCBkaWdpdHNCZWZvcmVEZWNpbWFsUG9pbnQgPSBtX2V4cG9uZW50ICsgMTsKKworICAgICAgICAv
LyBJZiB0aGUgcHJlY2lzaW9uIGlzIDw9IHRoYW4gdGhlIG51bWJlciBvZiBkaWdpdHMgdG8gZ2V0
IHVwIHRvIHRoZSBkZWNpbWFsCisgICAgICAgIC8vIHBvaW50LCB0aGVuIHRoZXJlIGlzIG5vIGZy
YWN0aW9uYWwgcGFydCwgbnVtYmVyIGlzIG9mIHRoZSBmb3JtOgorICAgICAgICAvLyBbPHNpZ24+
XTxzaWduaWZpY2FuZD5bPHplcm9zPl0KKyAgICAgICAgaWYgKG1fcHJlY2lzaW9uIDw9IGRpZ2l0
c0JlZm9yZURlY2ltYWxQb2ludCkgeworICAgICAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAg
ICAgICAgICAqbmV4dCsrID0gJy0nOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fcHJlY2lzaW9uOyArK2kpCisgICAgICAgICAgICAgICAgKm5leHQrKyA9IG1fc2lnbmlm
aWNhbmRbaV07CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKGRpZ2l0c0Jl
Zm9yZURlY2ltYWxQb2ludCAtIG1fcHJlY2lzaW9uKTsgKytpKQorICAgICAgICAgICAgICAgICpu
ZXh0KysgPSAnMCc7CisKKyAgICAgICAgICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIG51bWJlciBzdGFydHMgYmVmb3JlIHRo
ZSBkZWNpbWFsIHBvaW50LCBhbmQgZW5kcyBhZnRlciBpdCwKKyAgICAgICAgLy8gYXMgc3VjaCBp
cyBvZiB0aGUgZm9ybToKKyAgICAgICAgLy8gWzxzaWduPl08c2lnbmlmaWNhbmQtYmVnaW4+Ljxz
aWduaWZpY2FuZC1lbmQ+CisKKyAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAgICAgICpuZXh0
KysgPSAnLSc7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkaWdpdHNCZWZvcmVE
ZWNpbWFsUG9pbnQ7ICsraSkKKyAgICAgICAgICAgICpuZXh0KysgPSBtX3NpZ25pZmljYW5kW2ld
OworICAgICAgICAqbmV4dCsrID0gJy4nOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkaWdp
dHNCZWZvcmVEZWNpbWFsUG9pbnQ7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAgICAgICAgICAg
Km5leHQrKyA9IG1fc2lnbmlmaWNhbmRbaV07CisKKyAgICAgICAgcmV0dXJuIG5leHQgLSBidWZm
ZXI7CisgICAgfQorCisgICAgdW5zaWduZWQgdG9TdHJpbmdFeHBvbmVudGlhbChOdW1iZXJUb1N0
cmluZ0J1ZmZlciAmYnVmZmVyKQorICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBh
dCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCisgICAgICAgIEFTU0VSVCht
X3ByZWNpc2lvbik7CisKKyAgICAgICAgVUNoYXIqIG5leHQgPSBidWZmZXI7CisKKyAgICAgICAg
Ly8gQWRkIHRoZSBzaWduCisgICAgICAgIGlmIChtX3NpZ24pCisgICAgICAgICAgICAqbmV4dCsr
ID0gJy0nOworCisgICAgICAgIC8vIEFkZCB0aGUgc2lnbmlmaWNhbmQKKyAgICAgICAgKm5leHQr
KyA9IG1fc2lnbmlmaWNhbmRbMF07CisgICAgICAgIGlmIChtX3ByZWNpc2lvbiA+IDEpIHsKKyAg
ICAgICAgICAgICpuZXh0KysgPSAnLic7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAx
OyBpIDwgbV9wcmVjaXNpb247ICsraSkKKyAgICAgICAgICAgICAgICAqbmV4dCsrID0gbV9zaWdu
aWZpY2FuZFtpXTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCAiZSsiIG9yICJlLSIKKyAg
ICAgICAgKm5leHQrKyA9ICdlJzsKKyAgICAgICAgaW50IGV4cG9uZW50OworICAgICAgICBpZiAo
bV9leHBvbmVudCA+PSAwKSB7CisgICAgICAgICAgICAqbmV4dCsrID0gJysnOworICAgICAgICAg
ICAgZXhwb25lbnQgPSBtX2V4cG9uZW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Km5leHQrKyA9ICctJzsKKyAgICAgICAgICAgIGV4cG9uZW50ID0gLW1fZXhwb25lbnQ7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBBZGQgdGhlIGV4cG9uZW50CisgICAgICAgIGlmIChleHBvbmVu
dCA+PSAxMDApCisgICAgICAgICAgICAqbmV4dCsrID0gJzAnICsgZXhwb25lbnQgLyAxMDA7Cisg
ICAgICAgIGlmIChleHBvbmVudCA+PSAxMCkKKyAgICAgICAgICAgICpuZXh0KysgPSAnMCcgKyAo
ZXhwb25lbnQgJSAxMDApIC8gMTA7CisgICAgICAgICpuZXh0KysgPSAnMCcgKyBleHBvbmVudCAl
IDEwOworCisgICAgICAgIHJldHVybiBuZXh0IC0gYnVmZmVyOworICAgIH0KKworICAgIGJvb2wg
c2lnbigpIHsgcmV0dXJuIG1fc2lnbjsgfQorICAgIGludCBleHBvbmVudCgpIHsgcmV0dXJuIG1f
ZXhwb25lbnQ7IH0KKyAgICBjb25zdCBjaGFyKiBzaWduaWZpY2FuZCgpIHsgcmV0dXJuIG1fc2ln
bmlmaWNhbmQ7IH0gLy8gc2lnbmlmaWNhbmQgY29udGFpbnMgcHJlY2lzaW9uIGNoYXJhY3RlcnMs
IGlzIG5vdCBudWxsLXRlcm1pbmF0ZWQuCisgICAgdW5zaWduZWQgcHJlY2lzaW9uKCkgeyByZXR1
cm4gbV9wcmVjaXNpb247IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXQoYm9vbCBzaWduLCBk
b3VibGUgZCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNuYW4oZCkgJiYgIWlzaW5mKGQpKTsK
KworICAgICAgICBpbnQgZGVjaW1hbFBvaW50OworICAgICAgICBpbnQgc2lnblVudXNlZDsKKyAg
ICAgICAgY2hhciogcmVzdWx0RW5kID0gMDsKKyAgICAgICAgV1RGOjpkdG9hKG1fc2lnbmlmaWNh
bmQsIGQsIDAsICZkZWNpbWFsUG9pbnQsICZzaWduVW51c2VkLCAmcmVzdWx0RW5kKTsKKworICAg
ICAgICBtX3NpZ24gPSBzaWduOworICAgICAgICBtX3ByZWNpc2lvbiA9IHJlc3VsdEVuZCAtIG1f
c2lnbmlmaWNhbmQ7CisgICAgICAgIG1fZXhwb25lbnQgPSBkZWNpbWFsUG9pbnQgLSAxOworCisg
ICAgICAgIC8vIE5vIHZhbHVlcyBvdGhlciB0aGFuIHplcm8gc2hvdWxkIGhhdmUgYSBsZWFkaW5n
IHplcm8uCisgICAgICAgIEFTU0VSVChtX3NpZ25pZmljYW5kWzBdICE9ICcwJyB8fCBtX3ByZWNp
c2lvbiA9PSAxKTsKKyAgICAgICAgLy8gWmVybyBzaG91bGQgYWx3YXlzIGhhdmUgZXhwb25lbnQg
MC4KKyAgICAgICAgQVNTRVJUKG1fc2lnbmlmaWNhbmRbMF0gIT0gJzAnIHx8ICFtX2V4cG9uZW50
KTsKKyAgICB9CisKKyAgICBib29sIGlzWmVybygpCisgICAgeworICAgICAgICByZXR1cm4gbV9z
aWduaWZpY2FuZFswXSA9PSAnMCc7CisgICAgfQorCisgICAgLy8gV2UgcHJlLXJvdW5kIHRoZSB2
YWx1ZXMgdG8gZHRvYSAtIHdoaWNoIGxlYWRzIHRvIGl0IGdlbmVyYXRpbmcgZmFzdGVyIHJlc3Vs
dHMuCisgICAgLy8gQnV0IGR0b2Egd29uJ3QgaGF2ZSB6ZXJvIHBhZGRlZCB0aGUgc2lnbmlmaWNh
bmQgdG8gdGhlIHByZWNpc2lvbiB3ZSByZXF1aXJlLAorICAgIC8vIGFuZCBhbHNvIG1pZ2h0IGhh
dmUgcHJvZHVjZWQgdG9vIG1hbnkgZGlnaXRzIGlmIHJvdW5kaW5nIHdlbnQgd3Jvbmcgc29tZWhv
dy4KKyAgICAvLyBBZGp1c3QgZm9yIHRoaXMuCisgICAgdm9pZCByb3VuZFRvUHJlY2lzaW9uKHVu
c2lnbmVkIHNpZ25pZmljYW50RmlndXJlcykKKyAgICB7CisgICAgICAgIEFTU0VSVChzaWduaWZp
Y2FudEZpZ3VyZXMgJiYgc2lnbmlmaWNhbnRGaWd1cmVzIDw9IHNpemVvZihEdG9hQnVmZmVyKSk7
CisKKyAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBmZXcgb2YgdG9vIG1hbnkgZGlnaXRzIGlu
IHRoZSBzaWduaWZpY2FuZCB0aGVuIGFkZCBtb3JlLCBvciByZW1vdmUgc29tZSEKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gbV9wcmVjaXNpb247IGkgPCBzaWduaWZpY2FudEZpZ3VyZXM7ICsr
aSkKKyAgICAgICAgICAgIG1fc2lnbmlmaWNhbmRbaV0gPSAnMCc7CisgICAgICAgIG1fcHJlY2lz
aW9uID0gc2lnbmlmaWNhbnRGaWd1cmVzOworICAgIH0KKworICAgIGJvb2wgbV9zaWduOworICAg
IGludCBtX2V4cG9uZW50OworICAgIER0b2FCdWZmZXIgbV9zaWduaWZpY2FuZDsKKyAgICB1bnNp
Z25lZCBtX3ByZWNpc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OkRlY2ltYWxOdW1iZXI7Cit1c2luZyBXVEY6OlJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1cmVzOwor
dXNpbmcgV1RGOjpSb3VuZGluZ0RlY2ltYWxQbGFjZXM7CisKKyNlbmRpZiAvLyBEZWNpbWFsTnVt
YmVyX2gKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS93dGYvZHRvYS5jcHAJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlw
dENvcmUvd3RmL2R0b2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjg1LDgzICsyMjg1LDM1IEBA
IHJldDoKICAgICAgICAgKnJ2ZSA9IHM7CiB9CiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQg
YXBwZW5kKGNoYXIqJiBuZXh0LCBjb25zdCBjaGFyKiBzcmMsIHVuc2lnbmVkIHNpemUpCitkb3Vi
bGUgaW50UG93MTAoaW50IGUpCiB7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7
ICsraSkKLSAgICAgICAgKm5leHQrKyA9ICpzcmMrKzsKLX0KLQotdm9pZCBkb3VibGVUb1N0cmlu
Z0luSmF2YVNjcmlwdEZvcm1hdChkb3VibGUgZCwgRHRvYUJ1ZmZlciBidWZmZXIsIHVuc2lnbmVk
KiByZXN1bHRMZW5ndGgpCi17Ci0gICAgQVNTRVJUKGJ1ZmZlcik7CisgICAgLy8gVGhpcyBmdW5j
dGlvbiB1c2VzIHRoZSAiZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmciIGFsZ29yaXRobSBhbmQK
KyAgICAvLyBsb25nIGRvdWJsZSB0byBxdWlja2x5IGFuZCBwcmVjaXNlbHkgY2FsY3VsYXRlIGlu
dGVnZXIgcG93ZXJzIG9mIDEwLjAuCiAKLSAgICAvLyBhdm9pZCBldmVyIHByaW50aW5nIC1OYU4s
IGluIEpTIGNvbmNlcHR1YWxseSB0aGVyZSBpcyBvbmx5IG9uZSBOYU4gdmFsdWUKLSAgICBpZiAo
aXNuYW4oZCkpIHsKLSAgICAgICAgYXBwZW5kKGJ1ZmZlciwgIk5hTiIsIDMpOwotICAgICAgICBp
ZiAocmVzdWx0TGVuZ3RoKQotICAgICAgICAgICAgKnJlc3VsdExlbmd0aCA9IDM7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgLy8gLTAgLT4gIjAiCi0gICAgaWYgKCFkKSB7Ci0gICAgICAg
IGJ1ZmZlclswXSA9ICcwJzsKLSAgICAgICAgaWYgKHJlc3VsdExlbmd0aCkKLSAgICAgICAgICAg
ICpyZXN1bHRMZW5ndGggPSAxOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIC8vIFRoaXMg
aXMgYSBoYW5keSB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNDQ5NDc1Nj4KIAotICAg
IGludCBkZWNpbWFsUG9pbnQ7Ci0gICAgaW50IHNpZ247CisgICAgaWYgKCFlKQorICAgICAgICBy
ZXR1cm4gMS4wOwogCi0gICAgRHRvYUJ1ZmZlciByZXN1bHQ7Ci0gICAgY2hhciogcmVzdWx0RW5k
ID0gMDsKLSAgICBXVEY6OmR0b2EocmVzdWx0LCBkLCAwLCAmZGVjaW1hbFBvaW50LCAmc2lnbiwg
JnJlc3VsdEVuZCk7Ci0gICAgaW50IGxlbmd0aCA9IHJlc3VsdEVuZCAtIHJlc3VsdDsKLQotICAg
IGNoYXIqIG5leHQgPSBidWZmZXI7Ci0gICAgaWYgKHNpZ24pCi0gICAgICAgICpuZXh0KysgPSAn
LSc7Ci0KLSAgICBpZiAoZGVjaW1hbFBvaW50IDw9IDAgJiYgZGVjaW1hbFBvaW50ID4gLTYpIHsK
LSAgICAgICAgKm5leHQrKyA9ICcwJzsKLSAgICAgICAgKm5leHQrKyA9ICcuJzsKLSAgICAgICAg
Zm9yIChpbnQgaiA9IGRlY2ltYWxQb2ludDsgaiA8IDA7IGorKykKLSAgICAgICAgICAgICpuZXh0
KysgPSAnMCc7Ci0gICAgICAgIGFwcGVuZChuZXh0LCByZXN1bHQsIGxlbmd0aCk7Ci0gICAgfSBl
bHNlIGlmIChkZWNpbWFsUG9pbnQgPD0gMjEgJiYgZGVjaW1hbFBvaW50ID4gMCkgewotICAgICAg
ICBpZiAobGVuZ3RoIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAgICAgICAgYXBwZW5kKG5leHQs
IHJlc3VsdCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGVjaW1h
bFBvaW50IC0gbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKKyAg
ICBib29sIG5lZ2F0aXZlID0gZSA8IDA7CisgICAgdW5zaWduZWQgZXhwID0gbmVnYXRpdmUgPyAt
ZSA6IGU7CisKKyAgICBsb25nIGRvdWJsZSByZXN1bHQgPSAxMC4wOworICAgIGJvb2wgZm91bmRP
bmUgPSBmYWxzZTsKKyAgICBmb3IgKGludCBiaXQgPSAzMTsgYml0ID49IDA7IGJpdC0tKSB7Cisg
ICAgICAgIGlmICghZm91bmRPbmUpIHsKKyAgICAgICAgICAgIGlmICgoZXhwID4+IGJpdCkgJiAx
KQorICAgICAgICAgICAgICAgIGZvdW5kT25lID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGFwcGVuZChuZXh0LCByZXN1bHQsIGRlY2ltYWxQb2ludCk7Ci0gICAgICAgICAg
ICAqbmV4dCsrID0gJy4nOwotICAgICAgICAgICAgYXBwZW5kKG5leHQsIHJlc3VsdCArIGRlY2lt
YWxQb2ludCwgbGVuZ3RoIC0gZGVjaW1hbFBvaW50KTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAocmVzdWx0WzBdIDwgJzAnIHx8IHJlc3VsdFswXSA+ICc5JykKLSAgICAgICAgYXBwZW5kKG5l
eHQsIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgKm5leHQrKyA9IHJlc3Vs
dFswXTsKLSAgICAgICAgaWYgKGxlbmd0aCA+IDEpIHsKLSAgICAgICAgICAgICpuZXh0KysgPSAn
Lic7Ci0gICAgICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0ICsgMSwgbGVuZ3RoIC0gMSk7Cisg
ICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiByZXN1bHQ7CisgICAgICAgICAgICBpZiAoKGV4
cCA+PiBiaXQpICYgMSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAxMC4wOwog
ICAgICAgICB9Ci0KLSAgICAgICAgKm5leHQrKyA9ICdlJzsKLSAgICAgICAgKm5leHQrKyA9IChk
ZWNpbWFsUG9pbnQgPj0gMCkgPyAnKycgOiAnLSc7Ci0gICAgICAgIC8vIGRlY2ltYWxQb2ludCBj
YW4ndCBiZSBtb3JlIHRoYW4gMyBkaWdpdHMgZGVjaW1hbCBnaXZlbiB0aGUKLSAgICAgICAgLy8g
bmF0dXJlIG9mIGZsb2F0IHJlcHJlc2VudGF0aW9uCi0gICAgICAgIGludCBleHBvbmVudGlhbCA9
IGRlY2ltYWxQb2ludCAtIDE7Ci0gICAgICAgIGlmIChleHBvbmVudGlhbCA8IDApCi0gICAgICAg
ICAgICBleHBvbmVudGlhbCA9IC1leHBvbmVudGlhbDsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFs
ID49IDEwMCkKLSAgICAgICAgICAgICpuZXh0KysgPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBl
eHBvbmVudGlhbCAvIDEwMCk7Ci0gICAgICAgIGlmIChleHBvbmVudGlhbCA+PSAxMCkKLSAgICAg
ICAgICAgICpuZXh0KysgPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyAoZXhwb25lbnRpYWwgJSAx
MDApIC8gMTApOwotICAgICAgICAqbmV4dCsrID0gc3RhdGljX2Nhc3Q8Y2hhcj4oJzAnICsgZXhw
b25lbnRpYWwgJSAxMCk7CiAgICAgfQotICAgIGlmIChyZXN1bHRMZW5ndGgpCi0gICAgICAgICpy
ZXN1bHRMZW5ndGggPSBuZXh0IC0gYnVmZmVyOworCisgICAgaWYgKG5lZ2F0aXZlKQorICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPigxLjAgLyByZXN1bHQpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxkb3VibGU+KHJlc3VsdCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRl
eDogSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS93dGYvZHRvYS5oCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9h
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE1ICszNSwxMCBAQCBkb3VibGUgc3RydG9kKGNvbnN0
IGNoYXIqIHMwMCwgY2hhcioqIHNlCiAKIHR5cGVkZWYgY2hhciBEdG9hQnVmZmVyWzgwXTsKIHZv
aWQgZHRvYShEdG9hQnVmZmVyIHJlc3VsdCwgZG91YmxlIGQsIGludCBuZGlnaXRzLCBpbnQqIGRl
Y3B0LCBpbnQqIHNpZ24sIGNoYXIqKiBydmUpOwotCi0vLyBkdG9hKCkgZm9yIEVDTUEtMjYyICdU
b1N0cmluZyBBcHBsaWVkIHRvIHRoZSBOdW1iZXIgVHlwZS4nCi0vLyBUaGUgKnJlc3VsdExlbmd0
aCB3aWxsIGhhdmUgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0YW50IHN0cmluZyBpbiBidWZlci4K
LS8vIFRoZSByZXN1bHRhbnQgc3RyaW5nIGlzbid0IHRlcm1pbmF0ZWQgYnkgMC4KLXZvaWQgZG91
YmxlVG9TdHJpbmdJbkphdmFTY3JpcHRGb3JtYXQoZG91YmxlLCBEdG9hQnVmZmVyLCB1bnNpZ25l
ZCogcmVzdWx0TGVuZ3RoKTsKK2RvdWJsZSBpbnRQb3cxMChpbnQpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogdXNpbmcgV1RGOjpEdG9hQnVmZmVyOwotdXNpbmcgV1RGOjpkb3VibGVUb1N0cmlu
Z0luSmF2YVNjcmlwdEZvcm1hdDsKIAogI2VuZGlmIC8vIFdURl9kdG9hX2gKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAkocmV2aXNpb24gNjU2NDIpCisrKyBKYXZhU2Ny
aXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCAr
MjUsMTAgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVk
ZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL0RlY2ltYWxOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VURjguaD4KICNp
bmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKQEAgLTk0Nyw2ICs5NDcsNDEgQEAgZmxv
YXQgY2hhcmFjdGVyc1RvRmxvYXQoY29uc3QgVUNoYXIqIGRhdAogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4oY2hhcmFjdGVyc1RvRG91YmxlKGRhdGEsIGxlbmd0aCwgb2spKTsKIH0KIAor
c3RhdGljIHVuc2lnbmVkIGNvcHlUb1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcsIHVuc2lnbmVk
IGxlbmd0aCwgTnVtYmVyVG9TdHJpbmdCdWZmZXImIGJ1ZmZlcikKK3sKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgIGJ1ZmZlcltpXSA9IHN0cmluZ1tp
XTsKKyAgICByZXR1cm4gbGVuZ3RoOworfQorCitzdGF0aWMgTkVWRVJfSU5MSU5FIHVuc2lnbmVk
IG5hbk9ySW5mVG9TdHJpbmcoZG91YmxlIHgsIE51bWJlclRvU3RyaW5nQnVmZmVyJiBidWZmZXIp
Cit7CisgICAgQVNTRVJUKGlzbmFuKHgpIHx8IGlzaW5mKHgpKTsKKyAgICBpZiAoaXNuYW4oeCkp
CisgICAgICAgIHJldHVybiBjb3B5VG9TdHJpbmcoIk5hTiIsIDMsIGJ1ZmZlcik7CisgICAgaWYg
KHggPCAwKQorICAgICAgICByZXR1cm4gY29weVRvU3RyaW5nKCItSW5maW5pdHkiLCA5LCBidWZm
ZXIpOworICAgIHJldHVybiBjb3B5VG9TdHJpbmcoIkluZmluaXR5IiwgOCwgYnVmZmVyKTsKK30K
KworLy8gdG9TdHJpbmcgY29udmVydHMgYSBudW1iZXIgdG8gYSBzdHJpbmcgd2l0aG91dCByb3Vu
ZGluZy4gRm9yIHZhbHVlcyBpbiB0aGUgcmFuZ2UKKy8vIDFlLTYgPD0geCA8IDFlKzIxIHRoZSBy
ZXN1bHQgaXMgZm9ybWF0dGVkIGFzIGEgZGVjaW1hbCwgd2l0aCB2YWx1ZXMgb3V0c2lkZSBvZgor
Ly8gdGhpcyByYW5nZSBiZWluZyBmb3JtYXR0ZWQgYXMgYW4gZXhwb25lbnRpYWwuCit1bnNpZ25l
ZCBudW1iZXJUb1N0cmluZyhkb3VibGUgeCwgTnVtYmVyVG9TdHJpbmdCdWZmZXImIGJ1ZmZlcikK
K3sKKyAgICAvLyBIYW5kbGUgTmFOIGFuZCBJbmZpbml0eS4KKyAgICBpZiAoVU5MSUtFTFkoaXNu
YW4oeCkgfHwgaXNpbmYoeCkpKQorICAgICAgICByZXR1cm4gbmFuT3JJbmZUb1N0cmluZyh4LCBi
dWZmZXIpOworCisgICAgLy8gQ29udmVydCB0byBkZWNpbWFsLCBubyByb3VuZGluZy4KKyAgICBE
ZWNpbWFsTnVtYmVyIG51bWJlcih4KTsKKworICAgIC8vIEZvcm1hdCBhcyBkZWNpbWFsIG9yIGV4
cG9uZW50aWFsLCBkZXBlbmRpbmcgb24gdGhlIGV4cG9uZW50LgorICAgIHJldHVybiBudW1iZXIu
ZXhwb25lbnQoKSA+PSAtNiAmJiBudW1iZXIuZXhwb25lbnQoKSA8IDIxCisgICAgICAgID8gbnVt
YmVyLnRvU3RyaW5nRGVjaW1hbChidWZmZXIpCisgICAgICAgIDogbnVtYmVyLnRvU3RyaW5nRXhw
b25lbnRpYWwoYnVmZmVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNpZm5kZWYgTkRF
QlVHCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuaAkocmV2aXNpb24gNjU2NDIp
CisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNiArNTIsMTAgQEAgY2xhc3MgQlN0cmluZzsKIAogbmFtZXNwYWNlIFdURiB7CiAKKy8v
IFNpemUgPSA4MCBmb3Igc2l6ZW9mKER0b2FCdWZmZXIpICsgc29tZSBzaWduIGJpdHMsIGRlY2lt
YWwgcG9pbnQsICdlJywgZXhwb25lbnQgZGlnaXRzLgordHlwZWRlZiBVQ2hhciBOdW1iZXJUb1N0
cmluZ0J1ZmZlcls5Nl07Cit1bnNpZ25lZCBudW1iZXJUb1N0cmluZyhkb3VibGUsIE51bWJlclRv
U3RyaW5nQnVmZmVyJik7CisKIGNsYXNzIENTdHJpbmc7CiAKIC8vIERlY2xhcmF0aW9ucyBvZiBz
dHJpbmcgb3BlcmF0aW9ucwpAQCAtNDUzLDQgKzQ1Nyw3IEBAIHVzaW5nIFdURjo6Y2hhcmFjdGVy
c1RvSW50OwogdXNpbmcgV1RGOjpjaGFyYWN0ZXJzVG9GbG9hdDsKIHVzaW5nIFdURjo6Y2hhcmFj
dGVyc1RvRG91YmxlOwogCit1c2luZyBXVEY6Ok51bWJlclRvU3RyaW5nQnVmZmVyOwordXNpbmcg
V1RGOjpudW1iZXJUb1N0cmluZzsKKwogI2VuZGlmCkluZGV4OiBKYXZhU2NyaXB0R2x1ZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCShyZXZpc2lvbiA2
NTg2NSkKKysrIEphdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDExIEBACisyMDEwLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0ODcKKworICAgICAg
ICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5oOiBBZGRlZC4KKwogMjAx
MC0wOC0xMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnViYmVyIHN0YW1wcyBieSBEYXJpbiBBZGxlciAmIFNhbSBXZWluaWcuCkluZGV4OiBK
YXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdGV4dC9XVEZTdHJpbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdGV4dC9XVEZT
dHJpbmcuaAkocmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJz
L3d0Zi90ZXh0L1dURlN0cmluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvV1RGU3RyaW5nLmg+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjU4NjUpCisrKyBXZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA4LTIz
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0ODcKKworICAgICAgICAqIGh0bWwvTGVnYWN5SFRNTFRy
ZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUZvck51bWJlclR5cGUp
OgorICAgICAgICAgICAgVXBkYXRlIGZ1bmN0aW9uIGNhbGwgdG8gbnVtYmVyVG9TdHJpbmcuCisK
IDIwMTAtMDgtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MVHJl
ZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MVHJlZUJ1
aWxkZXIuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MVHJl
ZUJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUxLDEwICsxNzUxLDggQEAgU3RyaW5n
IHNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bQogewogICAgIC8vIEFjY29yZGluZyB0
byBIVE1MNSwgInRoZSBiZXN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgbiBhcyBhIGZs
b2F0aW5nCiAgICAgLy8gcG9pbnQgbnVtYmVyIiBpcyBhIHN0cmluZyBwcm9kdWNlZCBieSBhcHBs
eWluZyBUb1N0cmluZygpIHRvIG4uCi0gICAgRHRvYUJ1ZmZlciBidWZmZXI7Ci0gICAgdW5zaWdu
ZWQgbGVuZ3RoOwotICAgIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KG51bWJlciwg
YnVmZmVyLCAmbGVuZ3RoKTsKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKKyAg
ICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcmV0dXJuIFN0cmluZyhidWZmZXIs
IG51bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CiB9CiAKIGJvb2wgcGFyc2VUb0RvdWJs
ZUZvck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSogb3V0KQpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNjU4NjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNiBAQAorMjAxMC0wOC0yMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNs
b3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQnVnIDQ0NDg3IC0gQ2xlYW4gdXAgTnVtYmVyUHJvdG90eXBlLmNwcAorCisgICAg
ICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBzb21lIGxheW91dCB0ZXN0IHJlc3VsdHMgLSBpbiBhbGwg
dGhlc2UgY2FzZXMgd2Ugd2VyZQorICAgICAgICBub3QgcHJldmlvdXNseSBhY2N1cmF0ZSB0byBz
cGVjIGRlZmluZWQgYmVoYXZpb3VyLCBhbmQgd2UgYXJlIHN0aWxsIG5vdAorICAgICAgICAtIGJ1
dCBvdmVyYWxsIHRoaXMgY2hhbmdlcyByZWR1Y2VzIHRoZSBvdmVyYWxsIG1hZ25pdHVkZSBvZiBl
cnJvciBkdWUgdG8KKyAgICAgICAgcm91bmRpbmcgZGlmZmVyZW5jZXMuIFRoZSB1bmRlcmx5aW5n
IHByb2JsZW0gaXMgdGhhdCB3ZSBzaG91bGQgYmUgdXNpbmcKKyAgICAgICAgZHRvYSB0byBnZW5l
cmF0ZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIGFjY3VyYWN5LCByYXRoZXIgdGhhbiByZWx5aW5n
IG9uCisgICAgICAgIHByZS1yb3VuZGluZyB0aGUgaW5wdXQgdmFsdWVzLiBXZSBzaG91bGQgbG9v
ayBhdCByZWVuYWJsaW5nIG91ciBkdG9hCisgICAgICAgIGltcGxlbWVudGF0aW9uIHRvIHdvcmsg
aW4gdGhpcyBmYXNoaW9uIGFzIGEgc2VwYXJhdGUgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9q
cy9rZGUvTnVtYmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2tkZS9zY3JpcHQt
dGVzdHMvTnVtYmVyLmpzOgorICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvZml4ZWQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvanMvbnVtYmVyLXRvcHJlY2lzaW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qczoK
KyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qczoKKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9wcmVjaXNpb24uanM6CisKIDIwMTAt
MDgtMjMgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VudCBUYW11cmEuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10
b0V4cG9uZW50aWFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL251bWJlci10b0V4cG9uZW50aWFsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU2NDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b0V4cG9uZW50aWFsLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTcsMTIgKzE3LDEyIEBAIFBBU1MgKDEyMy40NTYpLnRvRXhwb25l
bnRpYWwoMykgaXMgIjEuMjMKIFBBU1MgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoNSkgaXMgIjEu
MjM0NTZlKzIiCiBQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDYpIGlzICIxLjIzNDU2MGUr
MiIKIEZBSUwgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMjApIHNob3VsZCBiZSAxLjIzNDU2MDAw
MDAwMDAwMDAzMDcwZSsyLiBXYXMgMS4yMzQ1NjAwMDAwMDAwMDAwMDAwMGUrMi4KLUZBSUwgKDEy
My40NTYpLnRvRXhwb25lbnRpYWwoMjEpIHNob3VsZCBiZSAxLjIzNDU2MDAwMDAwMDAwMDAzMDY5
NWUrMi4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVu
dCBtdXN0IGJldHdlZW4gMCBhbmQgMjAKLUZBSUwgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMTAw
KSBzaG91bGQgYmUgMS4yMzQ1NjAwMDAwMDAwMDAwMzA2OTU0NDYxODQ4MzYzMjgwMjk2MzI1Njgz
NTkzNzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
ZSsyLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50
IG11c3QgYmV0d2VlbiAwIGFuZCAyMAotUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDEp
IHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVz
dCBiZXR3ZWVuIDAgYW5kIDIwLgotUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgtMSkgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJl
dHdlZW4gMCBhbmQgMjAuCi1QQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChwb3NJbmYpIHRo
cmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBi
ZXR3ZWVuIDAgYW5kIDIwLgotUEFTUyAoMTIzNC41NjcpLnRvRXhwb25lbnRpYWwobmVnSW5mKSB0
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3Qg
YmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMjEpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDApIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDEpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgtMSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJl
dHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChwb3NJbmYpIHRo
cmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBi
ZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRXhwb25lbnRpYWwobmVnSW5m
KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KIFBBU1MgcG9zSW5mLnRvRXhwb25lbnRpYWwoKSBpcyAi
SW5maW5pdHkiCiBQQVNTIG5lZ0luZi50b0V4cG9uZW50aWFsKCkgaXMgIi1JbmZpbml0eSIKIFBB
U1MgbmFuLnRvRXhwb25lbnRpYWwoKSBpcyAiTmFOIgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9udW1iZXItdG9maXhlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9qcy9udW1iZXItdG9maXhlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY1NjQyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9maXhlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDE2ICs0MiwxNiBAQCBQQVNTICgxMjM0LjU2NykudG9GaXhlZCgyKSBpcyAi
MTIzNC41NyIKIFBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDIuOSkgaXMgIjEyMzQuNTciCiBQQVNT
ICgxMjM0LjU2NykudG9GaXhlZCg1KSBpcyAiMTIzNC41NjcwMCIKIEZBSUwgKDEyMzQuNTY3KS50
b0ZpeGVkKDIwKSBzaG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5Ni4gV2FzIDEyMzQu
NTY3MDAwMDAwMDAwMDAwMDAwMDAuCi1GQUlMICgxMjM0LjU2NykudG9GaXhlZCgyMSkgc2hvdWxk
IGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc1OTU4LiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAKLUZB
SUwgKDEyMzQuNTY3KS50b0ZpeGVkKDEwMCkgc2hvdWxkIGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3
Mjc1OTU3NjE0MTgzNDI1OTAzMzIwMzEyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6
IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwCi1QQVNT
ICgxMjM0LjU2NykudG9GaXhlZCgxMDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0Zp
eGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KLUZBSUwgKDEy
MzQuNTY3KS50b0ZpeGVkKC0xKSBzaG91bGQgYmUgMTIzMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdl
RXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIw
Ci1GQUlMICgxMjM0LjU2NykudG9GaXhlZCgtNCkgc2hvdWxkIGJlIDAuIFRocmV3IGV4Y2VwdGlv
biBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAw
IGFuZCAyMAotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoLTUpIHNob3VsZCBiZSAwLiBUaHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJl
dHdlZW4gMCBhbmQgMjAKLUZBSUwgKDEyMzQuNTY3KS50b0ZpeGVkKC0yMCkgc2hvdWxkIGJlIDAu
IFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMAotUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoLTIxKSB0aHJl
dyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJl
IGJldHdlZW4gMCBhbmQgMjAuCi1QQVNTICgxMjM0LjU2NykudG9GaXhlZChwb3NJbmYpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUg
YmV0d2VlbiAwIGFuZCAyMC4KLVBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKG5lZ0luZikgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBi
ZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMjEpIHRocmV3IGV4Y2Vw
dGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5k
IDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMTAwKSB0aHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1Mg
KDEyMzQuNTY3KS50b0ZpeGVkKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4
ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2Nyku
dG9GaXhlZCgtMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVu
dCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgtNCkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJl
dHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgtNSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQg
MjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgtMjApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVy
cm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAo
MTIzNC41NjcpLnRvRml4ZWQoLTIxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhl
ZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50
b0ZpeGVkKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1
bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZChu
ZWdJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgogUEFTUyBwb3NJbmYudG9GaXhlZCgpIGlzICJJbmZpbml0
eSIKIFBBU1MgbmVnSW5mLnRvRml4ZWQoKSBpcyAiLUluZmluaXR5IgogUEFTUyBuYW4udG9GaXhl
ZCgpIGlzICJOYU4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b3ByZWNpc2lv
bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXIt
dG9wcmVjaXNpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0MikKKysrIExheW91dFRlc3Rz
L2Zhc3QvanMvbnVtYmVyLXRvcHJlY2lzaW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMjMsOCArMjMsOCBAQCBQQVNTICgxMjM0LjU2NykudG9QcmVjaXNpb24oMikgaXMgIjEuMmUr
CiBQQVNTICgxMjM0LjU2NykudG9QcmVjaXNpb24oMi45KSBpcyAiMS4yZSszIgogUEFTUyAoMTIz
NC41NjcpLnRvUHJlY2lzaW9uKDUpIGlzICIxMjM0LjYiCiBGQUlMICgxMjM0LjU2NykudG9QcmVj
aXNpb24oMjEpIHNob3VsZCBiZSAxMjM0LjU2NzAwMDAwMDAwMDAwNzI4LiBXYXMgMTIzNC41Njcw
MDAwMDAwMDAwMDAwMC4KLUZBSUwgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyMikgc2hvdWxkIGJl
IDEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc2LiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9Q
cmVjaXNpb24oKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjEKLUZBSUwgKDEyMzQu
NTY3KS50b1ByZWNpc2lvbigxMDApIHNob3VsZCBiZSAxMjM0LjU2NzAwMDAwMDAwMDAwNzI3NTk1
NzYxNDE4MzQyNTkwMzMyMDMxMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lz
aW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxCitQQVNTICgxMjM0LjU2Nyku
dG9QcmVjaXNpb24oMjIpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigp
IGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMS4KK1BBU1MgKDEyMzQuNTY3KS50b1By
ZWNpc2lvbigxMDApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigpIGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMS4KIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNp
c2lvbigxMDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigpIGFyZ3Vt
ZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMS4KIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lv
bihwb3NJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigpIGFyZ3Vt
ZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMS4KIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lv
bihuZWdJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigpIGFyZ3Vt
ZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
a2RlL051bWJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9rZGUvTnVtYmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL2tkZS9OdW1iZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODgs
MTEgKzE4OCwxMSBAQCBQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FCiBQ
QVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxMykgaXMg
IjEuMjM0NTY3ODkwMTIzNWUrMiIKIFBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEy
KS50b0V4cG9uZW50aWFsKDE0KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NmUrMiIKIFBBU1MgTnVtYmVy
KDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSBpcyAiMS4yMzQ1Njc4
OTAxMjM0NTdlKzIiCi1QQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgxNikgaXMgIjEuMjM0NTY3ODkwMTIzNDU3MGUrMiIKLVBBU1MgTnVtYmVyKDEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE3KSBpcyAiMS4yMzQ1Njc4OTAxMjM0
NTcwMGUrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE4KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcxMDBlKzIiCi1QQVNTIE51bWJlcigxMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOSkgaXMgIjEuMjM0NTY3ODkwMTIzNDU3
MDAwMGUrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDIwKSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcwMDAwMGUrMiIKK1BBU1MgTnVtYmVyKDEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSBpcyAiMS4yMzQ1Njc4OTAxMjM0
NTY4ZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRp
YWwoMTcpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4
OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTgpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1Njgw
MGUrMiIKK1BBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFs
KDE5KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTY3MDAwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4
OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIGlzICIxLjIzNDU2Nzg5MDEyMzQ1Njgw
MDAwZSsyIgogUEFTUyB0cnkgeyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoMjEpIH0gY2F0Y2ggKGUpIHsgU3RyaW5nKGUpLmluZGV4T2YoJ1JhbmdlJykgPj0g
MDsgfSBpcyB0cnVlCiBQQVNTIE51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoKSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU2OGUrMiIKIFBBU1MgdHJ5IHsgTnVtYmVy
KC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgtMSkgfSBjYXRjaCAoZSkg
eyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9IGlzIHRydWUKQEAgLTIxMiwxMSAr
MjEyLDExIEBAIFBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG8KIFBBU1Mg
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxMykgaXMgIi0x
LjIzNDU2Nzg5MDEyMzVlKzIiCiBQQVNTIE51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIp
LnRvRXhwb25lbnRpYWwoMTQpIGlzICItMS4yMzQ1Njc4OTAxMjM0NmUrMiIKIFBBU1MgTnVtYmVy
KC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNSkgaXMgIi0xLjIzNDU2
Nzg5MDEyMzQ1N2UrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxNikgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NzBlKzIiCi1QQVNTIE51bWJlcigt
MTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcpIGlzICItMS4yMzQ1Njc4
OTAxMjM0NTcwMGUrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxOCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NzEwMGUrMiIKLVBBU1MgTnVtYmVy
KC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOSkgaXMgIi0xLjIzNDU2
Nzg5MDEyMzQ1NzAwMDBlKzIiCi1QQVNTIE51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIp
LnRvRXhwb25lbnRpYWwoMjApIGlzICItMS4yMzQ1Njc4OTAxMjM0NTcwMDAwMGUrMiIKK1BBU1Mg
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNikgaXMgIi0x
LjIzNDU2Nzg5MDEyMzQ1NjhlKzIiCitQQVNTIE51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkw
MTIpLnRvRXhwb25lbnRpYWwoMTcpIGlzICItMS4yMzQ1Njc4OTAxMjM0NTY4MGUrMiIKK1BBU1Mg
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOCkgaXMgIi0x
LjIzNDU2Nzg5MDEyMzQ1NjgwMGUrMiIKK1BBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxOSkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NjcwMDBlKzIiCitQ
QVNTIE51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIGlz
ICItMS4yMzQ1Njc4OTAxMjM0NTY4MDAwMGUrMiIKIFBBU1MgdHJ5IHsgTnVtYmVyKC0xMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMSkgfSBjYXRjaCAoZSkgeyBTdHJpbmco
ZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9IGlzIHRydWUKIFBBU1MgTnVtYmVyKC4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAxKS50b0V4cG9uZW50aWFsKCkgaXMgIjFlLTIyIgogUEFTUyBOdW1iZXIo
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMTIpLnRvRXhwb25lbnRpYWwoKSBpcyAiMS4yZS0yMSIKQEAg
LTM0OCwxMSArMzQ4LDExIEBAIFBBU1MgTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
MjMKIFBBU1MgTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMTQpIGlzICIwLjAwMDEyMzQ1Njc4OTAxMjM1IgogUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNSkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEy
MzQ2IgogUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxNikgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NyIKLVBBU1MgTnVtYmVyKDAuMDAwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIGlzICIwLjAwMDEyMzQ1Njc4
OTAxMjM0NTY4IgotUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50
b1ByZWNpc2lvbigxOCkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwIgotUEFTUyBOdW1iZXIo
MC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkgaXMgIjAuMDAw
MTIzNDU2Nzg5MDEyMzQ1NjgwMCIKLVBBU1MgTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4
OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwIgot
UEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MSkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMDAwIgorRkFJTCBOdW1iZXIoMC4wMDAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykgc2hvdWxkIGJlIDAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjcuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4LgorRkFJTCBOdW1iZXIo
MC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgc2hvdWxkIGJl
IDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxLiBXYXMgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NjAuCitG
QUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5
KSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzLiBXYXMgMC4wMDAxMjM0NTY3ODkw
MTIzNDU2ODAwLgorRkFJTCBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50
b1ByZWNpc2lvbigyMCkgc2hvdWxkIGJlIDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMzAuIFdhcyAw
LjAwMDEyMzQ1Njc4OTAxMjM0NTY1MDAwLgorRkFJTCBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkgc2hvdWxkIGJlIDAuMDAwMTIzNDU2Nzg5MDEy
MzQ1NjcxMjk3LiBXYXMgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzAwMDAuCiBQQVNTIE51bWJlcigx
MjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oKSBpcyAiMTIzNDUuNjc4OTAx
MjM0NTY3IgogUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDEpIGlzICIxZSs0IgogUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDIpIGlzICIxLjJlKzQiCkBAIC0zNzMsNyArMzczLDcgQEAgUEFTUyBOdW1i
ZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLgogUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBpcyAiMTIzNDUuNjc4OTAxMjM0NTY4Igog
UEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBp
cyAiMTIzNDUuNjc4OTAxMjM0NTY2MCIKIFBBU1MgTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkgaXMgIjEyMzQ1LjY3ODkwMTIzNDU2ODAwIgotUEFTUyBO
dW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBpcyAiMTIz
NDUuNjc4OTAxMjM0NTY1MDAwIgorUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDIwKSBpcyAiMTIzNDUuNjc4OTAxMjM0NTY3MDAwIgogUEFTUyBOdW1i
ZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBpcyAiMTIzNDUu
Njc4OTAxMjM0NTY3MDAwMCIKIFBBU1MgTnVtYmVyKC0uMDAwMDAwMDAxMjM0NSkudG9QcmVjaXNp
b24oMikgaXMgIi0xLjJlLTkiCiBQQVNTIE51bWJlcigtLjAwMDAwMDAxMjM0NSkudG9QcmVjaXNp
b24oMikgaXMgIi0xLjJlLTgiCkBAIC00MDgsMTEgKzQwOCwxMSBAQCBQQVNTIE51bWJlcigtMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyCiBQQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNCkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM1Igog
UEFTUyBOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24o
MTUpIGlzICItMC4wMDAxMjM0NTY3ODkwMTIzNDYiCiBQQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNikgaXMgIi0wLjAwMDEyMzQ1Njc4OTAx
MjM0NTciCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxNykgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4IgotUEFTUyBOdW1iZXIoLTAu
MDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIGlzICItMC4wMDAx
MjM0NTY3ODkwMTIzNDU2ODAiCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDAiCi1Q
QVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MCkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwIgotUEFTUyBOdW1iZXIoLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIGlzICItMC4wMDAxMjM0NTY3
ODkwMTIzNDU2ODAwMDAiCitGQUlMIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy
MzQ1KS50b1ByZWNpc2lvbigxNykgc2hvdWxkIGJlIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3LiBX
YXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjguCitGQUlMIE51bWJlcigtMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgc2hvdWxkIGJlIC0wLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3MS4gV2FzIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY2MC4KK0ZBSUwgTnVtYmVyKC0w
LjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBzaG91bGQgYmUg
LTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMy4gV2FzIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDAu
CitGQUlMIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigyMCkgc2hvdWxkIGJlIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTMwLiBXYXMgLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjUwMDAuCitGQUlMIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkgc2hvdWxkIGJlIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
MTI5Ny4gV2FzIC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwMC4KIFBBU1MgTnVtYmVyKC0xMjM0
NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oKSBpcyAiLTEyMzQ1LjY3ODkwMTIz
NDU2NyIKIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMSkgaXMgIi0xZSs0IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigyKSBpcyAiLTEuMmUrNCIKQEAgLTQzMyw3ICs0MzMsNyBAQCBQQVNTIE51
bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpCiBQQVNTIE51bWJlcigtMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBpcyAiLTEyMzQ1LjY3ODkwMTIzNDU2
OCIKIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24o
MTgpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY2MCIKIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY4MDAi
Ci1QQVNTIE51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIw
KSBpcyAiLTEyMzQ1LjY3ODkwMTIzNDU2NTAwMCIKK1BBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICItMTIzNDUuNjc4OTAxMjM0NTY3MDAw
IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MSkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjcwMDAwIgogUEFTUyBOdW1iZXIoMCkudG9QcmVjaXNp
b24oKSBpcyAiMCIKIFBBU1MgTnVtYmVyKDApLnRvUHJlY2lzaW9uKDEpIGlzICIwIgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvc2NyaXB0LXRlc3RzL051bWJlci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9zY3JpcHQtdGVzdHMvTnVtYmVyLmpzCShyZXZp
c2lvbiA2NTY0MikKKysrIExheW91dFRlc3RzL2Zhc3QvanMva2RlL3NjcmlwdC10ZXN0cy9OdW1i
ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxMSArMjAzLDExIEBAIHNob3VsZEJlKCJOdW1i
ZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIKIHNob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAx
MjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTMpIiwiXCIxLjIzNDU2Nzg5MDEyMzVlKzJcIiIp
Owogc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgxNCkiLCJcIjEuMjM0NTY3ODkwMTIzNDZlKzJcIiIpOwogc2hvdWxkQmUoIk51bWJlcigxMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNSkiLCJcIjEuMjM0NTY3ODkwMTIz
NDU3ZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRv
RXhwb25lbnRpYWwoMTYpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NzBlKzJcIiIpOwotc2hvdWxkQmUo
Ik51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykiLCJcIjEu
MjM0NTY3ODkwMTIzNDU3MDBlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEy
MzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOCkiLCJcIjEuMjM0NTY3ODkwMTIzNDU3MTAwZSsy
XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25l
bnRpYWwoMTkpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NzAwMDBlKzJcIiIpOwotc2hvdWxkQmUoIk51
bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkiLCJcIjEuMjM0
NTY3ODkwMTIzNDU3MDAwMDBlKzJcIiIpOworc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEy
MzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNikiLCJcIjEuMjM0NTY3ODkwMTIzNDU2OGUrMlwi
Iik7CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE3KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY4MGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVy
KDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiMS4yMzQ1Njc4
OTAxMjM0NTY4MDBlKzJcIiIpOworc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxOSkiLCJcIjEuMjM0NTY3ODkwMTIzNDU2NzAwMGUrMlwiIik7
CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFs
KDIwKSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY4MDAwMGUrMlwiIik7CiBzaG91bGRCZVRydWUoInRy
eSB7IE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMSkgfSBj
YXRjaCAoZSkgeyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9Iik7CiBzaG91bGRC
ZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgpIiwiXCIt
MS4yMzQ1Njc4OTAxMjM0NTY4ZSsyXCIiKTsKIHNob3VsZEJlVHJ1ZSgidHJ5IHsgTnVtYmVyKC0x
MjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgtMSkgfSBjYXRjaCAoZSkgeyBT
dHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9Iik7CkBAIC0yMjcsMTEgKzIyNywxMSBA
QCBzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxCiBzaG91bGRCZSgiTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxMykiLCJcIi0xLjIz
NDU2Nzg5MDEyMzVlKzJcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3
ODkwMTIpLnRvRXhwb25lbnRpYWwoMTQpIiwiXCItMS4yMzQ1Njc4OTAxMjM0NmUrMlwiIik7CiBz
aG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgx
NSkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1N2UrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNikiLCJcIi0xLjIzNDU2Nzg5MDEy
MzQ1NzBlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIp
LnRvRXhwb25lbnRpYWwoMTcpIiwiXCItMS4yMzQ1Njc4OTAxMjM0NTcwMGUrMlwiIik7Ci1zaG91
bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOCki
LCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NzEwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOSkiLCJcIi0xLjIzNDU2Nzg5MDEy
MzQ1NzAwMDBlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkw
MTIpLnRvRXhwb25lbnRpYWwoMjApIiwiXCItMS4yMzQ1Njc4OTAxMjM0NTcwMDAwMGUrMlwiIik7
CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgxNikiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjhlKzJcIiIpOworc2hvdWxkQmUoIk51bWJlcigt
MTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcpIiwiXCItMS4yMzQ1Njc4
OTAxMjM0NTY4MGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxOCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwMGUrMlwiIik7
CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgxOSkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjcwMDBlKzJcIiIpOworc2hvdWxkQmUoIk51bWJl
cigtMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIiwiXCItMS4yMzQ1
Njc4OTAxMjM0NTY4MDAwMGUrMlwiIik7CiBzaG91bGRCZVRydWUoInRyeSB7IE51bWJlcigtMTIz
LjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjEpIH0gY2F0Y2ggKGUpIHsgU3Ry
aW5nKGUpLmluZGV4T2YoJ1JhbmdlJykgPj0gMDsgfSIpOwogc2hvdWxkQmUoIk51bWJlciguMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMSkudG9FeHBvbmVudGlhbCgpIiwiXCIxZS0yMlwiIik7CiBzaG91
bGRCZSgiTnVtYmVyKC4wMDAwMDAwMDAwMDAwMDAwMDAwMDEyKS50b0V4cG9uZW50aWFsKCkiLCJc
IjEuMmUtMjFcIiIpOwpAQCAtMzY0LDExICszNjQsMTEgQEAgc2hvdWxkQmUoIk51bWJlcigwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3OAogc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE0KSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNVwiIik7
CiBzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVj
aXNpb24oMTUpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NlwiIik7CiBzaG91bGRCZSgiTnVtYmVy
KDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTYpIiwiXCIwLjAw
MDEyMzQ1Njc4OTAxMjM0NTdcIiIpOwotc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2
OFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSku
dG9QcmVjaXNpb24oMTgpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MFwiIik7Ci1zaG91bGRC
ZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkp
IiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDBcIiIpOwotc2hvdWxkQmUoIk51bWJlcigwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiMC4wMDAxMjM0
NTY3ODkwMTIzNDU2NzAwMFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4
MDAwMFwiIik7CitzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMTcpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3XCIiKTsKK3Nob3Vs
ZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
OCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIjAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjcxM1wiIik7CitzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
MTMwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigyMSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMjk3XCIiKTsKIHNo
b3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKCki
LCJcIjEyMzQ1LjY3ODkwMTIzNDU2N1wiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxKSIsIlwiMWUrNFwiIik7CiBzaG91bGRCZSgi
TnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyKSIsIlwiMS4y
ZSs0XCIiKTsKQEAgLTM4OSw3ICszODksNyBAQCBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkw
MTIzNDU2Nzg5MDEyCiBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigxNykiLCJcIjEyMzQ1LjY3ODkwMTIzNDU2OFwiIik7CiBzaG91bGRCZSgi
TnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkiLCJcIjEy
MzQ1LjY3ODkwMTIzNDU2NjBcIiIpOwogc2hvdWxkQmUoIk51bWJlcigxMjM0NS42Nzg5MDEyMzQ1
Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIiwiXCIxMjM0NS42Nzg5MDEyMzQ1NjgwMFwiIik7
Ci1zaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigyMCkiLCJcIjEyMzQ1LjY3ODkwMTIzNDU2NTAwMFwiIik7CitzaG91bGRCZSgiTnVtYmVyKDEy
MzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIjEyMzQ1LjY3ODkw
MTIzNDU2NzAwMFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEy
MzQ1KS50b1ByZWNpc2lvbigyMSkiLCJcIjEyMzQ1LjY3ODkwMTIzNDU2NzAwMDBcIiIpOwogc2hv
dWxkQmUoIk51bWJlcigtLjAwMDAwMDAwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwiXCItMS4yZS05
XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLS4wMDAwMDAwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwi
XCItMS4yZS04XCIiKTsKQEAgLTQyNCwxMSArNDI0LDExIEBAIHNob3VsZEJlKCJOdW1iZXIoLTAu
MDAwMTIzNDU2Nzg5MDEyMzQ1NjcKIHNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTQpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNVwi
Iik7CiBzaG91bGRCZSgiTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDE1KSIsIlwiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ2XCIiKTsKIHNob3VsZEJlKCJO
dW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTYpIiwi
XCItMC4wMDAxMjM0NTY3ODkwMTIzNDU3XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIiwiXCItMC4wMDAxMjM0NTY3
ODkwMTIzNDU2OFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwXCIi
KTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9Q
cmVjaXNpb24oMTkpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwXCIiKTsKLXNob3VsZEJl
KCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjAp
IiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzAwMFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0w
LjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiLTAuMDAw
MTIzNDU2Nzg5MDEyMzQ1NjgwMDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIiwiXCItMC4wMDAxMjM0NTY3ODkw
MTIzNDU2N1wiIik7CitzaG91bGRCZSgiTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxXCIiKTsK
K3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVj
aXNpb24oMTkpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzXCIiKTsKK3Nob3VsZEJlKCJO
dW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIiwi
XCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzMFwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0wLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjcxMjk3XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigpIiwiXCItMTIzNDUuNjc4OTAxMjM0NTY3XCIiKTsK
IHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigxKSIsIlwiLTFlKzRcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwiXCItMS4yZSs0XCIiKTsKQEAgLTQ0OSw3ICs0NDks
NyBAQCBzaG91bGRCZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxCiBzaG91bGRCZSgi
TnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIiwiXCIt
MTIzNDUuNjc4OTAxMjM0NTY4XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjYwXCIi
KTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxOSkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjgwMFwiIik7Ci1zaG91bGRCZSgiTnVtYmVy
KC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIiwiXCItMTIzNDUu
Njc4OTAxMjM0NTY1MDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2
Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjcwMDBcIiIp
Owogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDIxKSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2NzAwMDBcIiIpOwogc2hvdWxkQmUoIk51bWJl
cigwKS50b1ByZWNpc2lvbigpIiwiXCIwXCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMCkudG9QcmVj
aXNpb24oMSkiLCJcIjBcIiIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvbnVtYmVyLXRvRXhwb25lbnRpYWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvRXhwb25lbnRpYWwuanMJKHJldmlzaW9uIDY1NjQy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvRXhwb25lbnRp
YWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCIoMTIzLjQ1NikudG9FeHBvbgogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzLjQ1Niku
dG9FeHBvbmVudGlhbCgyMCkiLCAiMS4yMzQ1NjAwMDAwMDAwMDAwMzA3MGUrMiIpOwogCiAvLyBT
cGlkZXJNb25rZXkgYWxsb3dzIHByZWNpc2lvbiB2YWx1ZXMgMCB0byAxMDAsIHdlIG9ubHkgYWxs
b3cgMCB0byAyMCBjdXJyZW50bHkKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMy40NTYpLnRv
RXhwb25lbnRpYWwoMjEpIiwgIjEuMjM0NTYwMDAwMDAwMDAwMDMwNjk1ZSsyIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIigxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMCkiLCAiMS4yMzQ1NjAw
MDAwMDAwMDAwMzA2OTU0NDYxODQ4MzYzMjgwMjk2MzI1NjgzNTkzNzUwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZSsyIik7CitzaG91bGRUaHJvdygi
KDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMjEpIik7CitzaG91bGRUaHJvdygiKDEyMy40NTYpLnRv
RXhwb25lbnRpYWwoMTAwKSIpOwogc2hvdWxkVGhyb3coIigxMjMuNDU2KS50b0V4cG9uZW50aWFs
KDEwMSkiKTsKIHNob3VsZFRocm93KCIoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgtMSkiKTsKIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvZml4ZWQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRv
Zml4ZWQuanMJKHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvbnVtYmVyLXRvZml4ZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTYxLDE0ICs2MSwxNCBA
QCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlCiBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCg1KSIsICIxMjM0LjU2NzAwIik7CiBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCgyMCkiLCAiMTIzNC41NjcwMDAwMDAw
MDAwMDcyNzU5NiIpOwogCi0vLyBTcGlkZXJNb25rZXkgYWxsb3dzIHByZWNpc2lvbiB2YWx1ZXMg
LTIwIHRvIDEwMCwgd2Ugb25seSBhbGxvdyAwIHRvIDIwIGN1cnJlbnRseQotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvRml4ZWQoMjEpIiwgIjEyMzQuNTY3MDAwMDAwMDAwMDA3
Mjc1OTU4Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCgxMDAp
IiwgIjEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc1OTU3NjE0MTgzNDI1OTAzMzIwMzEyNTAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOwor
Ly8gU3BpZGVyTW9ua2V5IGFsbG93cyBwcmVjaXNpb24gdmFsdWVzIC0yMCB0byAxMDAsIHRoZSBz
cGVjIG9ubHkgYWxsb3dzIDAgdG8gMjAKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQo
MjEpIik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b0ZpeGVkKDEwMCkiKTsKIHNob3VsZFRo
cm93KCIoMTIzNC41NjcpLnRvRml4ZWQoMTAxKSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIo
MTIzNC41NjcpLnRvRml4ZWQoLTEpIiwgIjEyMzAiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygi
KDEyMzQuNTY3KS50b0ZpeGVkKC00KSIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigx
MjM0LjU2NykudG9GaXhlZCgtNSkiLCAiMCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIz
NC41NjcpLnRvRml4ZWQoLTIwKSIsICIwIik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b0Zp
eGVkKC0xKSIpOworc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgtNCkiKTsKK3Nob3Vs
ZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoLTUpIik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3
KS50b0ZpeGVkKC0yMCkiKTsKIHNob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoLTIxKSIp
OwogCiBzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b0ZpeGVkKHBvc0luZikiKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b3ByZWNpc2lvbi5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9wcmVj
aXNpb24uanMJKHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvbnVtYmVyLXRvcHJlY2lzaW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCw5
IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b1ByZWMKIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyLjkpIiwgIjEuMmUrMyIpOwogc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDUpIiwgIjEyMzQuNiIp
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIxKSIsICIx
MjM0LjU2NzAwMDAwMDAwMDAwNzI4Iik7Ci0vLyBTcGlkZXJNb25rZXkgYWxsb3dzIHByZWNpc2lv
biB2YWx1ZXMgMSB0byAxMDAsIHdlIG9ubHkgYWxsb3cgMSB0byAyMSBjdXJyZW50bHkKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyMikiLCAiMTIzNC41Njcw
MDAwMDAwMDAwMDcyNzYiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b1By
ZWNpc2lvbigxMDApIiwgIjEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc1OTU3NjE0MTgzNDI1OTAzMzIw
MzEyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwIik7CisvLyBTcGlkZXJNb25rZXkgYWxsb3dzIHByZWNpc2lvbiB2YWx1ZXMgMSB0byAxMDAs
IHdlIGltcGxlbWVudCB0aGUgc3BlYyBhbmQgb25seSBhbGxvdyAxIHRvIDIxLgorc2hvdWxkVGhy
b3coIigxMjM0LjU2NykudG9QcmVjaXNpb24oMjIpIik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3
KS50b1ByZWNpc2lvbigxMDApIik7CiBzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b1ByZWNpc2lv
bigxMDEpIik7CiAKIHNob3VsZFRocm93KCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKHBvc0luZiki
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65214</attachid>
            <date>2010-08-23 23:27:56 -0700</date>
            <delta_ts>2010-08-24 14:09:10 -0700</delta_ts>
            <desc>Fixes for JSVALUE32_64 builds.</desc>
            <filename>DecimalNumber.3.patch</filename>
            <type>text/plain</type>
            <size>73766</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgIE51bWJlci50b0V4cG9uZW50aWFsL3RvRml4ZWQv
dG9QcmVjaXNpb24gYWxsIGNvbnRhaW4gYSBzcGFnaGV0dGkgb2YgZHVwbGljYXRlZAorICAgICAg
ICBjb2RlICYgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4gQWRkIGEgbmV3IERlY2ltYWxOdW1iZXIg
Y2xhc3MgdG8gZW5jYXBzdWxhdGUKKyAgICAgICAgZG91YmxlIHRvIHN0cmluZyBjb252ZXJzaW9u
LCBzaGFyZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJvdW5kaW5nICYKKyAgICAgICAgZGVjaW1h
bC1mcmFjdGlvbi9leHBvbmVudGlhbCBmb3JtYXR0aW5nLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUuZXhwOgorICAgICAgICAgICAgVXBkYXRlIGV4cG9ydHMuCisKKyAgICAgICAgKiBydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnRvVGhpc051bWJlcik6Cisg
ICAgICAgIChKU0M6OmdldEludGVnZXJBcmd1bWVudEluUmFuZ2UpOgorICAgICAgICAgICAgSGVs
cGVyIG1ldGhvZHMgdXNlZCBpbiBpbXBsZW1lbnRpbmcgdG9FeHBvbmVudGlhbC90b0ZpeGVkL3Rv
U3RyaW5nLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKToKKyAg
ICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9GaXhlZCk6CisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKToKKyAgICAgICAgICAgIFJlaW1wbGVtZW50ZWQgdXNpbmcg
bmV3IERlY2ltYWxOdW1iZXIgY2xhc3MuCisgICAgICAgICAgICAKKyAgICAgICAgKiBydW50aW1l
L1VTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpudW1iZXIpOgorICAgICAgICAg
ICAgVXBkYXRlZCB0byBjYWxsIG51bWJlclRvU3RyaW5nLgorCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDogQWRkZWQuCisgICAgICAgIChXVEY6Oik6CisgICAgICAgIChXVEY6OkRlY2lt
YWxOdW1iZXI6OkRlY2ltYWxOdW1iZXIpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0
b1N0cmluZ0RlY2ltYWwpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4
cG9uZW50aWFsKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6c2lnbik6CisgICAgICAg
IChXVEY6OkRlY2ltYWxOdW1iZXI6OmV4cG9uZW50KToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6c2lnbmlmaWNhbmQpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjpwcmVjaXNp
b24pOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjppbml0KToKKyAgICAgICAgKFdURjo6
RGVjaW1hbE51bWJlcjo6aXNaZXJvKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6cm91
bmRUb1ByZWNpc2lvbik6CisgICAgICAgICAgICBOZXcgY2xhc3MgdG8gcGVyZm9ybSBkb3VibGUg
dG8gc3RyaW5nIGNvbnZlcnNpb24uCisgICAgICAgICAgICBIYXMgdGhyZWUgY29uc3RydWN0b3Jz
LCB3aGljaCBhbGxvdyBjb252ZXJzaW9uIHdpdGggbm8gcm91bmRpbmcsCisgICAgICAgICAgICBy
b3VuZGluZyB0byBzaWduaWZpY2FudC1maWd1cmVzLCBvciByb3VuZGluZyB0byBkZWNpbWFsLXBs
YWNlcywKKyAgICAgICAgICAgIGFuZCB0d28gbWV0aG9kcyBmb3IgZm9ybWF0dGluZyBzdHJpbmdz
LCBlaXRoZXIgdXNpbmcgZGVjaW1hbAorICAgICAgICAgICAgZnJhY3Rpb24gb3IgZXhwb25lbnRp
YWwgZW5jb2RpbmcuIEludGVybmFsIGltcGxlbWVudGF0aW9uIHVzZXMKKyAgICAgICAgICAgIHBy
ZS1yb3VuZGluZyBvZiB0aGUgdmFsdWVzIGJlZm9yZSBjYWxsaW5nIGR0b2EgcmF0aGVyIHRoYW4K
KyAgICAgICAgICAgIHJlbHlpbmcgb24gZHRvYSB0byBjb3JyZWN0bHkgcm91bmQsIHdoaWNoIGRv
ZXMgbm90IHByb2R1Y2UKKyAgICAgICAgICAgIGZ1bGx5IGFjY3VyYXRlIHJlc3VsdHMuIEhvcGVm
dWxseSB3ZSBjYW4gYWRkcmVzcyB0aGlzIGluIHRoZQorICAgICAgICAgICAgbmVhciBmdXR1cmUu
CisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OmludFBvdzEwKToKKyAg
ICAgICAgKiB3dGYvZHRvYS5oOgorICAgICAgICAgICAgaW50UG93MTAgaXMgdXNlZCBpbnRlcm5h
bGx5IGJ5IERlY2ltYWxOdW1iZXIuCisgICAgICAgICAgICAKKyAgICAgICAgKiB3dGYvdGV4dC9X
VEZTdHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjb3B5VG9TdHJpbmcpOgorICAgICAgICAoV1RG
OjpuYW5PckluZlRvU3RyaW5nKToKKyAgICAgICAgICAgIFVzZWQgaW50ZXJuYWxseSBpbiBudW1i
ZXJUb1N0cmluZyBmb3IgTmFOL0luZmluaXR5IGhhbmRsaW5nLgorICAgICAgICAoV1RGOjpudW1i
ZXJUb1N0cmluZyk6CisgICAgICAgICAgICBBZGRlZCBuZXcgbWV0aG9kIHRvIGNvbnZlcnQgZG91
YmxlcyB0byBzdHJpbmdzLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAg
ICAgICAgICBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgbnVtYmVyVG9TdHJpbmcuIFRoaXMgaXMgaGVy
ZSBiZWNhdXNlCisgICAgICAgICAgICB3ZSBzaG91bGQgc3dpdGNoIG92ZXIgdG8gdXNpbmcgdGhp
cyBmb3IgYWxsIGRvdWJsZSB0byBzdHJpbmcKKyAgICAgICAgICAgIGNvbnZlcnNpb24gaW4gV2Vi
Q29yZSAoc2VlIHNlY3Rpb24gMi40LjQuMyBvZiB0aGUgSFRNTDUgc3BlYykuCisKIDIwMTAtMDgt
MjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9u
IDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzcsNiArMzc3LDcgQEAgX19aTjNXVEYxM2N1cnJlbnRUaHJlYWRFdgogX19aTjNX
VEYxM3RyeUZhc3RDYWxsb2NFbW0KIF9fWk4zV1RGMTN0cnlGYXN0TWFsbG9jRW0KIF9fWk4zV1RG
MTRmYXN0TWFsbG9jU2l6ZUVQS3YKK19fWk4zV1RGMTRudW1iZXJUb1N0cmluZ0VkUkE5Nl90CiBf
X1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNHdhaXRFUk5TXzVNdXRleEUKIF9fWk4zV1RGMTVUaHJl
YWRDb25kaXRpb242c2lnbmFsRXYKIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb245YnJvYWRjYXN0
RXYKQEAgLTQxMSw3ICs0MTIsNiBAQCBfX1pOM1dURjIzZGF5SW5Nb250aEZyb21EYXlJblllYXJF
aWIKIF9fWk4zV1RGMjN3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkVqUFB2CiBfX1pOM1dURjI3cmVs
ZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5RXYKIF9fWk4zV1RGMjhzZXRNYWluVGhyZWFkQ2FsbGJh
Y2tzUGF1c2VkRWIKLV9fWk4zV1RGMzJkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdEVk
UGNQagogX19aTjNXVEYzNmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CiBf
X1pOM1dURjM3cGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVyc0VQS2MKIF9fWk4z
V1RGMzh1bmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIw
MCw3IEBACiAJCTg2MjZCRUNGMTE5MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjZCRUNFMTE5
MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCAqLzsgfTsKIAkJODYyN0U1RUIxMUYx
MjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjdFNUU5MTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5jcHAgKi87IH07CiAJCTg2MjdFNUVDMTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyN0U1RUExMUYxMjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODYyQUY0QjYxMjIzOUM3
QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkFGNEI1MTIyMzlDN0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVt
YmVyLmggKi87IH07CiAJCTg2M0IyM0UwMEZDNjExODkwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjU2NTc0MjEx
NUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MDExNUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5j
cHAgKi87IH07CiAJCTg2NTY1NzQzMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MTExNUJFM0RB
MDAyOTFGNDAgLyogQ1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03ODUsNiArNzg2LDcgQEAKIAkJODYyNkJFQ0UxMTkyOEUzOTAwNzgy
RkFCIC8qIFN0cmluZ1N0YXRpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3RyaW5nU3RhdGljcy5jcHA7IHBhdGggPSB0ZXh0L1N0cmluZ1N0YXRpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyog
UGFnZUFsbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZUFsbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVF
QTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODYyQUY0QjUxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbE51bWJlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjU2NTc0MDExNUJF
M0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBDU3RyaW5nLmNwcDsgcGF0aCA9IHRleHQvQ1N0cmluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2NTY1NzQxMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENTdHJpbmcuaDsgcGF0aCA9IHRleHQv
Q1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOCw2ICsxNDQwLDcg
QEAKIAkJCQkxODBCOUFGMDBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuaCAqLywKIAkJ
CQk0MTM1OUNGNDBGREQ4OUNCMDAyMDYxODAgLyogRGF0ZU1hdGguY3BwICovLAogCQkJCTQxMzU5
Q0Y1MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5oICovLAorCQkJCTg2MkFGNEI1MTIyMzlD
N0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVtYmVyLmggKi8sCiAJCQkJNTE4NjExMUQwQ0M4MjQ4MzAw
ODE0MTJCIC8qIERlcXVlLmggKi8sCiAJCQkJOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERp
c2FsbG93Q1R5cGUuaCAqLywKIAkJCQk2NTFGNjQxMjAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5j
cHAgKi8sCkBAIC0yMjMzLDYgKzIyMzYsNyBAQAogCQkJCURERTgyQUQ4MTIwOUQ5NTUwMDVDMTc1
NiAvKiBHQ0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGMzg4NTkxMjExMzBDQTAwN0E3
Q0UzIC8qIEF0b21pY1N0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QjZEQTAyMTIx
MzJCOUEwMDBEMzE2RiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODYyQUY0QjYxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjMyNiw2ICsyMzMwLDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJY29t
cGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0g
RW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25z
ID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm90b3R5cGVGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKLSNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02Niw3NSAr
NjYsMTQwIEBAIE51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4ZWNTdGEKIAogLy8g
RUNNQSAxNS43LjQuMiAtIDE1LjcuNC43CiAKLXN0YXRpYyBVU3RyaW5nIGludGVnZXJQYXJ0Tm9F
eHAoZG91YmxlIGQpCitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRvVGhpc051bWJlcihKU1Zh
bHVlIHRoaXNWYWx1ZSwgZG91YmxlICZ4KQogewotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAg
aW50IHNpZ247Ci0gICAgY2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQs
IDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCBOVUxMKTsKLSAgICBib29sIHJlc3VsdElzSW5mT3JO
YW4gPSAoZGVjaW1hbFBvaW50ID09IDk5OTkpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4o
cmVzdWx0KTsKLQotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVu
ZChzaWduID8gIi0iIDogIiIpOwotICAgIGlmIChyZXN1bHRJc0luZk9yTmFuKQotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgoY29uc3QgY2hhciopcmVzdWx0KTsKLSAgICBlbHNlIGlmIChkZWNpbWFs
UG9pbnQgPD0gMCkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjAiKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZihkZWNpbWFsUG9pbnQgKyAxKTsKLQotICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8aW50PihsZW5ndGgpIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAg
ICAgICAgQVNTRVJUKGRlY2ltYWxQb2ludCA8IDEwMjQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1
Zi5kYXRhKCksIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIG1lbXNldChidWYuZGF0YSgp
ICsgbGVuZ3RoLCAnMCcsIGRlY2ltYWxQb2ludCAtIGxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgc3RybmNweShidWYuZGF0YSgpLCByZXN1bHQsIGRlY2ltYWxQb2ludCk7Ci0g
ICAgICAgIGJ1ZltkZWNpbWFsUG9pbnRdID0gJ1wwJzsKKyAgICBKU1ZhbHVlIHYgPSB0aGlzVmFs
dWUuZ2V0SlNOdW1iZXIoKTsKKyAgICBpZiAoVU5MSUtFTFkoIXYpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgZ2V0SW50ZWdlckFyZ3VtZW50SW5SYW5n
ZShFeGVjU3RhdGUqIGV4ZWMsIGludCBsb3csIGludCBoaWdoLCBpbnQmIHJlc3VsdCwgYm9vbCYg
aXNVbmRlZmluZWQpCit7CisgICAgcmVzdWx0ID0gMDsKKyAgICBpc1VuZGVmaW5lZCA9IGZhbHNl
OwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKChjb25zdCBjaGFyKikoYnVmLmRhdGEoKSkpOwor
ICAgIEpTVmFsdWUgYXJndW1lbnQwID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgaWYgKGFyZ3Vt
ZW50MC5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIGlzVW5kZWZpbmVkID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTsKKyAg
ICBkb3VibGUgYXNEb3VibGUgPSBhcmd1bWVudDAudG9JbnRlZ2VyKGV4ZWMpOworICAgIGlmIChh
c0RvdWJsZSA8IGxvdyB8fCBhc0RvdWJsZSA+IGhpZ2gpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludD4oYXNEb3VibGUpOworICAgIHJldHVybiB0
cnVlOwogfQogCi1zdGF0aWMgVVN0cmluZyBjaGFyU2VxdWVuY2UoY2hhciBjLCBpbnQgY291bnQp
CisvLyB0b0V4cG9uZW50aWFsIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3RyaW5nLCBhbHdheXMg
Zm9ybWF0dGluZyBhcyBhbiBleHBvZW50aWFsLgorLy8gVGhpcyBtZXRob2QgdGFrZXMgYW4gb3B0
aW9uYWwgYXJndW1lbnQgc3BlY2lmeWluZyBhIG51bWJlciBvZiAqZGVjaW1hbCBwbGFjZXMqCisv
LyB0byByb3VuZCB0aGUgc2lnbmlmaWNhbmQgdG8gKG9yLCBwdXQgYW5vdGhlciB3YXksIHRoaXMg
bWV0aG9kIG9wdGlvbmFsbHkgcm91bmRzCisvLyB0byBhcmd1bWVudC1wbHVzLW9uZSBzaWduaWZp
Y2FudCBmaWd1cmVzKS4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9FeHBvbmVudGlhbChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVmVjdG9yPGNoYXIsIDIw
NDg+IGJ1Zihjb3VudCArIDEsIGMpOwotICAgIGJ1Zltjb3VudF0gPSAnXDAnOworICAgIC8vIEdl
dCB4ICh0aGUgZG91YmxlIHZhbHVlIG9mIHRoaXMsIHdoaWNoIHNob3VsZCBiZSBhIE51bWJlciku
CisgICAgZG91YmxlIHg7CisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpLCB4KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBy
ZXR1cm4gVVN0cmluZyhidWYuZGF0YSgpKTsKKyAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKKyAg
ICBpbnQgZGVjaW1hbFBsYWNlc0luRXhwb25lbnQ7CisgICAgYm9vbCBpc1VuZGVmaW5lZDsKKyAg
ICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhlYywgMCwgMjAsIGRlY2ltYWxQbGFj
ZXNJbkV4cG9uZW50LCBpc1VuZGVmaW5lZCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAidG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMCIpKTsKKworICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmlu
aXR5LgorICAgIGlmIChpc25hbih4KSB8fCBpc2luZih4KSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpKTsKKworICAgIC8v
IFJvdW5kIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgdW5kZWZpbmVkLCBhbHdheXMgZm9ybWF0IGFz
IGV4cG9uZW50aWFsLgorICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSBpc1VuZGVmaW5lZAorICAgICAgICA/IERlY2ltYWxOdW1iZXIoeCkudG9T
dHJpbmdFeHBvbmVudGlhbChidWZmZXIpCisgICAgICAgIDogRGVjaW1hbE51bWJlcih4LCBSb3Vu
ZGluZ1NpZ25pZmljYW50RmlndXJlcywgZGVjaW1hbFBsYWNlc0luRXhwb25lbnQgKyAxKS50b1N0
cmluZ0V4cG9uZW50aWFsKGJ1ZmZlcik7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKSk7CiB9CiAKLXN0YXRpYyBkb3Vi
bGUgaW50UG93MTAoaW50IGUpCisvLyB0b0ZpeGVkIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3Ry
aW5nLCBhbHdheXMgZm9ybWF0dGluZyBhcyBhbiBhIGRlY2ltYWwgZnJhY3Rpb24uCisvLyBUaGlz
IG1ldGhvZCB0YWtlcyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIGRlY2ltYWwg
cGxhY2VzIHRvIHJvdW5kIHRoZQorLy8gc2lnbmlmaWNhbmQgdG8uIEhvd2V2ZXIgd2hlbiBjb252
ZXJ0aW5nIGxhcmdlIHZhbHVlcyAoMWUrMjEgYW5kIGFib3ZlKSB0aGlzCisvLyBtZXRob2Qgd2ls
bCBpbnN0ZWFkIGZhbGxiYWNrIHRvIGNhbGxpbmcgVG9TdHJpbmcuIAorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlICJleHBvbmVudGlhdGlvbiBieSBzcXVhcmlu
ZyIgYWxnb3JpdGhtIGFuZAotICAgIC8vIGxvbmcgZG91YmxlIHRvIHF1aWNrbHkgYW5kIHByZWNp
c2VseSBjYWxjdWxhdGUgaW50ZWdlciBwb3dlcnMgb2YgMTAuMC4KKyAgICAvLyBHZXQgeCAodGhl
IGRvdWJsZSB2YWx1ZSBvZiB0aGlzLCB3aGljaCBzaG91bGQgYmUgYSBOdW1iZXIpLgorICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdiA9
IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOworICAgIGlmICghdikKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJl
cigpOwogCi0gICAgLy8gVGhpcyBpcyBhIGhhbmR5IHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJv
YmxlbS80NDk0NzU2PgorICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIAorICAgIGludCBkZWNpbWFs
UGxhY2VzOworICAgIGJvb2wgaXNVbmRlZmluZWQ7IC8vIFRoaXMgaXMgaWdub3JlZDsgdW5kZWZp
bmVkIHRyZWF0ZWQgYXMgMC4KKyAgICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhl
YywgMCwgMjAsIGRlY2ltYWxQbGFjZXMsIGlzVW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0ZpeGVkKCkgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwIikpOworCisgICAgLy8gMTUuNy40LjUuNyBzdGF0
ZXMgIklmIHggPj0gMTBeMjEsIHRoZW4gbGV0IG0gPSBUb1N0cmluZyh4KSIKKyAgICAvLyBUaGlz
IGFsc28gY292ZXJzIEluaW5pdHksIGFuZCBzdHJ1Y3R1cmUgdGhlIGNoZWNrIHNvIHRoYXQgTmFO
CisgICAgLy8gdmFsdWVzIGFyZSBhbHNvIGhhbmRsZWQgYnkgbnVtYmVyVG9TdHJpbmcKKyAgICBp
ZiAoIShmYWJzKHgpIDwgMWUrMjEpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJlcih4KSkpOwogCi0gICAgaWYgKGUgPT0gMCkKLSAg
ICAgICAgcmV0dXJuIDEuMDsKKyAgICAvLyBUaGUgY2hlY2sgYWJvdmUgd2lsbCByZXR1cm4gZmFs
c2UgZm9yIE5hTiBvciBJbmZpbml0eSwgdGhlc2Ugd2lsbCBiZQorICAgIC8vIGhhbmRsZWQgYnkg
bnVtYmVyVG9TdHJpbmcuCisgICAgQVNTRVJUKCFpc25hbih4KSAmJiAhaXNpbmYoeCkpOworCisg
ICAgLy8gQ29udmVydCB0byBkZWNpbWFsIHdpdGggcm91bmRpbmcsIGFuZCBmb3JtYXQgYXMgZGVj
aW1hbC4KKyAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0gRGVjaW1hbE51bWJlcih4LCBSb3VuZGluZ0RlY2ltYWxQbGFjZXMsIGRlY2ltYWxQbGFj
ZXMpLnRvU3RyaW5nRGVjaW1hbChidWZmZXIpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxlbmd0aCkpKTsKK30KKworLy8gdG9QcmVj
aXNpb24gY29udmVydHMgYSBudW1iZXIgdG8gYSBzdHJpbmcsIHRha2VpbmcgYW4gYXJndW1lbnQg
c3BlY2lmeWluZyBhCisvLyBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZmlndXJlcyB0byByb3VuZCB0
aGUgc2lnbmlmaWNhbmQgdG8uIEZvciBwb3NpdGl2ZQorLy8gZXhwb25lbnQsIGFsbCB2YWx1ZXMg
dGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgdXNpbmcgYSBkZWNpbWFsIGZyYWN0aW9uIHdpbGwKKy8v
IGJlLCBlLmcuIHdoZW4gcm91bmRpbmcgdG8gMyBzLmYuIGFueSB2YWx1ZSB1cCB0byA5OTkgd2ls
bCBiZSBmb3JtYXRlZCBhcyBhCisvLyBkZWNpbWFsLCB3aGlsc3QgMTAwMCBpcyBjb252ZXJ0ZWQg
dG8gdGhlIGV4cG9uZW50aWFsIHJlcHJlc2VudGF0aW9uIDEuMDBlKzMuCisvLyBGb3IgbmVnYXRp
dmUgZXhwb25lbnRzIHZhbHVlcyA+PSAxZS02IGFyZSBmb3JtYXRlZCBhcyBkZWNpbWFsIGZyYWN0
aW9ucywKKy8vIHdpdGggc21hbGxlciB2YWx1ZXMgY29udmVydGVkIHRvIGV4cG9uZW50aWFsIHJl
cHJlc2VudGF0aW9uLgorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb1ByZWNpc2lvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgLy8gR2V0IHggKHRoZSBkb3Vi
bGUgdmFsdWUgb2YgdGhpcywgd2hpY2ggc2hvdWxkIGJlIGEgTnVtYmVyKS4KKyAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHYgPSB0aGlz
VmFsdWUuZ2V0SlNOdW1iZXIoKTsKKyAgICBpZiAoIXYpCisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIoKTsK
IAotICAgIGJvb2wgbmVnYXRpdmUgPSBlIDwgMDsKLSAgICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2
ZSA/IC1lIDogZTsKLQotICAgIGxvbmcgZG91YmxlIHJlc3VsdCA9IDEwLjA7Ci0gICAgYm9vbCBm
b3VuZE9uZSA9IGZhbHNlOwotICAgIGZvciAoaW50IGJpdCA9IDMxOyBiaXQgPj0gMDsgYml0LS0p
IHsKLSAgICAgICAgaWYgKCFmb3VuZE9uZSkgewotICAgICAgICAgICAgaWYgKChleHAgPj4gYml0
KSAmIDEpCi0gICAgICAgICAgICAgICAgZm91bmRPbmUgPSB0cnVlOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogcmVzdWx0OwotICAgICAgICAgICAgaWYg
KChleHAgPj4gYml0KSAmIDEpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTAu
MDsKLSAgICAgICAgfQotICAgIH0KKyAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKKyAgICBpbnQg
c2lnbmlmaWNhbnRGaWd1cmVzOworICAgIGJvb2wgaXNVbmRlZmluZWQ7CisgICAgaWYgKCFnZXRJ
bnRlZ2VyQXJndW1lbnRJblJhbmdlKGV4ZWMsIDEsIDIxLCBzaWduaWZpY2FudEZpZ3VyZXMsIGlz
VW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5n
ZUVycm9yKGV4ZWMsICJ0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFu
ZCAyMSIpKTsKKworICAgIC8vIFRvIHByZWNpc2lvbiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudCBp
cyB0cmVhdGVkIGFzIFRvU3RyaW5nLgorICAgIGlmIChpc1VuZGVmaW5lZCkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpKTsK
IAotICAgIGlmIChuZWdhdGl2ZSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
MS4wIC8gcmVzdWx0KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZXN1bHQpOwor
ICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgorICAgIGlmIChpc25hbih4KSB8fCBpc2lu
Zih4KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3Ry
aW5nOjpudW1iZXIoeCkpKTsKKworICAgIC8vIENvbnZlcnQgdG8gZGVjaW1hbCB3aXRoIHJvdW5k
aW5nLgorICAgIERlY2ltYWxOdW1iZXIgbnVtYmVyKHgsIFJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1
cmVzLCBzaWduaWZpY2FudEZpZ3VyZXMpOworICAgIC8vIElmIG51bWJlciBpcyBpbiB0aGUgcmFu
Z2UgMWUtNiA8PSB4IDwgcG93KDEwLCBzaWduaWZpY2FudEZpZ3VyZXMpIHRoZW4gZm9ybWF0Cisg
ICAgLy8gYXMgZGVjaW1hbC4gT3RoZXJ3aXNlLCBmb3JtYXQgdGhlIG51bWJlciBhcyBhbiBleHBv
bmVudGlhbC4gIERlY2ltYWwgZm9ybWF0CisgICAgLy8gZGVtYW5kcyBhIG1pbmltdW0gb2YgKGV4
cG9uZW50ICsgMSkgZGlnaXRzIHRvIHJlcHJlc2VudCBhIG51bWJlciwgZm9yIGV4YW1wbGUKKyAg
ICAvLyAxMjM0ICgxLjIzNGUrMykgcmVxdWlyZXMgNCBkaWdpdHMuIChTZWUgRUNNQS0yNjIgMTUu
Ny40LjcuMTAuYykKKyAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gbnVtYmVyLmV4cG9uZW50KCkgPj0gLTYgJiYgbnVtYmVyLmV4cG9uZW50KCkg
PCBzaWduaWZpY2FudEZpZ3VyZXMKKyAgICAgICAgPyBudW1iZXIudG9TdHJpbmdEZWNpbWFsKGJ1
ZmZlcikKKyAgICAgICAgOiBudW1iZXIudG9TdHJpbmdFeHBvbmVudGlhbChidWZmZXIpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNDMsMjM3ICszMDgsNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh2KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb0ZpeGVkKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNOdW1i
ZXIoKTsKLSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OwotCi0gICAgSlNWYWx1ZSBmcmFjdGlvbkRpZ2l0cyA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAg
IGRvdWJsZSBkZiA9IGZyYWN0aW9uRGlnaXRzLnRvSW50ZWdlcihleGVjKTsKLSAgICBpZiAoIShk
ZiA+PSAwICYmIGRmIDw9IDIwKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUg
YmV0d2VlbiAwIGFuZCAyMCIpKTsKLSAgICBpbnQgZiA9IHN0YXRpY19jYXN0PGludD4oZGYpOwot
Ci0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotICAgIGlmIChpc25hbih4
KSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgIk5hTiIpKTsKLQotICAgIFVTdHJpbmcgczsKLSAgICBpZiAoeCA8IDApIHsKLSAgICAgICAg
cyA9ICItIjsKLSAgICAgICAgeCA9IC14OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHMgPSAiIjsK
LSAgICAgICAgaWYgKHggPT0gLTAuMCkKLSAgICAgICAgICAgIHggPSAwOwotICAgIH0KLQotICAg
IGlmICh4ID49IHBvdygxMC4wLCAyMS4wKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIFVTdHJpbmc6Om51bWJlcih4KSkpKTsKLQot
ICAgIGNvbnN0IGRvdWJsZSB0ZW5Ub1RoZUYgPSBwb3coMTAuMCwgZik7Ci0gICAgZG91YmxlIG4g
PSBmbG9vcih4ICogdGVuVG9UaGVGKTsKLSAgICBpZiAoZmFicyhuIC8gdGVuVG9UaGVGIC0geCkg
Pj0gZmFicygobiArIDEpIC8gdGVuVG9UaGVGIC0geCkpCi0gICAgICAgIG4rKzsKLQotICAgIFVT
dHJpbmcgbSA9IGludGVnZXJQYXJ0Tm9FeHAobik7Ci0KLSAgICBpbnQgayA9IG0ubGVuZ3RoKCk7
Ci0gICAgaWYgKGsgPD0gZikgewotICAgICAgICBTdHJpbmdCdWlsZGVyIHo7Ci0gICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgZiArIDEgLSBrOyBpKyspCi0gICAgICAgICAgICB6LmFwcGVuZCgn
MCcpOwotICAgICAgICB6LmFwcGVuZChtKTsKLSAgICAgICAgbSA9IHouYnVpbGQoKTsKLSAgICAg
ICAgayA9IGYgKyAxOwotICAgICAgICBBU1NFUlQoayA9PSBzdGF0aWNfY2FzdDxpbnQ+KG0ubGVu
Z3RoKCkpKTsKLSAgICB9Ci0gICAgaW50IGtNaW51c2YgPSBrIC0gZjsKLQotICAgIGlmIChrTWlu
dXNmIDwgc3RhdGljX2Nhc3Q8aW50PihtLmxlbmd0aCgpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIG0uc3Vic3RyaW5nU2hhcmlu
Z0ltcGwoMCwga01pbnVzZiksICIuIiwgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbChrTWludXNmKSkp
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VTdHJpbmco
cywgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbCgwLCBrTWludXNmKSkpKTsKLX0KLQotc3RhdGljIHZv
aWQgZnJhY3Rpb25hbFBhcnRUb1N0cmluZyhjaGFyKiBidWYsIGludCYgaSwgY29uc3QgY2hhciog
cmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBpbnQgZnJhY3Rpb25hbERpZ2l0cykKLXsKLSAgICBp
ZiAoZnJhY3Rpb25hbERpZ2l0cyA8PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgZkRp
Z2l0c0luUmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50PihyZXN1bHRMZW5ndGgpIC0gMTsKLSAgICBi
dWZbaSsrXSA9ICcuJzsKLSAgICBpZiAoZkRpZ2l0c0luUmVzdWx0ID4gMCkgewotICAgICAgICBp
ZiAoZnJhY3Rpb25hbERpZ2l0cyA8IGZEaWdpdHNJblJlc3VsdCkgewotICAgICAgICAgICAgc3Ry
bmNweShidWYgKyBpLCByZXN1bHQgKyAxLCBmcmFjdGlvbmFsRGlnaXRzKTsKLSAgICAgICAgICAg
IGkgKz0gZnJhY3Rpb25hbERpZ2l0czsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFT
U0VSVChpICsgcmVzdWx0TGVuZ3RoIC0gMSA8IDgwKTsKLSAgICAgICAgICAgIG1lbWNweShidWYg
KyBpLCByZXN1bHQgKyAxLCByZXN1bHRMZW5ndGggLSAxKTsKLSAgICAgICAgICAgIGkgKz0gc3Rh
dGljX2Nhc3Q8aW50PihyZXN1bHRMZW5ndGgpIC0gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGZvciAoaW50IGogPSAwOyBqIDwgZnJhY3Rpb25hbERpZ2l0cyAtIGZEaWdpdHNJblJlc3VsdDsg
aisrKQotICAgICAgICBidWZbaSsrXSA9ICcwJzsKLX0KLQotc3RhdGljIHZvaWQgZXhwb25lbnRp
YWxQYXJ0VG9TdHJpbmcoY2hhciogYnVmLCBpbnQmIGksIGludCBkZWNpbWFsUG9pbnQpCi17Ci0g
ICAgYnVmW2krK10gPSAnZSc7Ci0gICAgLy8gZGVjaW1hbFBvaW50IGNhbid0IGJlIG1vcmUgdGhh
biAzIGRpZ2l0cyBkZWNpbWFsIGdpdmVuIHRoZQotICAgIC8vIG5hdHVyZSBvZiBmbG9hdCByZXBy
ZXNlbnRhdGlvbgotICAgIGludCBleHBvbmVudGlhbCA9IGRlY2ltYWxQb2ludCAtIDE7Ci0gICAg
YnVmW2krK10gPSAoZXhwb25lbnRpYWwgPj0gMCkgPyAnKycgOiAnLSc7Ci0gICAgaWYgKGV4cG9u
ZW50aWFsIDwgMCkKLSAgICAgICAgZXhwb25lbnRpYWwgKj0gLTE7Ci0gICAgaWYgKGV4cG9uZW50
aWFsID49IDEwMCkKLSAgICAgICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBl
eHBvbmVudGlhbCAvIDEwMCk7Ci0gICAgaWYgKGV4cG9uZW50aWFsID49IDEwKQotICAgICAgICBi
dWZbaSsrXSA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIChleHBvbmVudGlhbCAlIDEwMCkgLyAx
MCk7Ci0gICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBleHBvbmVudGlhbCAl
IDEwKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNU
b0V4cG9uZW50aWFsKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNO
dW1iZXIoKTsKLSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwotCi0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotCi0gICAgaWYg
KGlzbmFuKHgpIHx8IGlzaW5mKHgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJlcih4KSkpOwotCi0gICAgSlNWYWx1ZSBmcmFjdGlv
bmFsRGlnaXRzVmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBkb3VibGUgZGYgPSBmcmFj
dGlvbmFsRGlnaXRzVmFsdWUudG9JbnRlZ2VyKGV4ZWMpOwotICAgIGlmICghKGRmID49IDAgJiYg
ZGYgPD0gMjApKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdl
RXJyb3IoZXhlYywgInRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdlZW4gMCBhbmQg
MjAiKSk7Ci0gICAgaW50IGZyYWN0aW9uYWxEaWdpdHMgPSBzdGF0aWNfY2FzdDxpbnQ+KGRmKTsK
LSAgICBib29sIGluY2x1ZGVBbGxEaWdpdHMgPSBmcmFjdGlvbmFsRGlnaXRzVmFsdWUuaXNVbmRl
ZmluZWQoKTsKLQotICAgIGludCBkZWNpbWFsQWRqdXN0ID0gMDsKLSAgICBpZiAoeCAmJiAhaW5j
bHVkZUFsbERpZ2l0cykgewotICAgICAgICBkb3VibGUgbG9neCA9IGZsb29yKGxvZzEwKGZhYnMo
eCkpKTsKLSAgICAgICAgeCAvPSBwb3coMTAuMCwgbG9neCk7Ci0gICAgICAgIGNvbnN0IGRvdWJs
ZSB0ZW5Ub1RoZUYgPSBwb3coMTAuMCwgZnJhY3Rpb25hbERpZ2l0cyk7Ci0gICAgICAgIGRvdWJs
ZSBmeCA9IGZsb29yKHggKiB0ZW5Ub1RoZUYpIC8gdGVuVG9UaGVGOwotICAgICAgICBkb3VibGUg
Y3ggPSBjZWlsKHggKiB0ZW5Ub1RoZUYpIC8gdGVuVG9UaGVGOwotCi0gICAgICAgIGlmIChmYWJz
KGZ4IC0geCkgPCBmYWJzKGN4IC0geCkpCi0gICAgICAgICAgICB4ID0gZng7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHggPSBjeDsKLQotICAgICAgICBkZWNpbWFsQWRqdXN0ID0gc3RhdGlj
X2Nhc3Q8aW50Pihsb2d4KTsKLSAgICB9Ci0KLSAgICBpZiAoaXNuYW4oeCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJOYU4iKSk7Ci0K
LSAgICBpZiAoeCA9PSAtMC4wKSAvLyAoLTAuMCkudG9FeHBvbmVudGlhbCgpIHNob3VsZCBwcmlu
dCBhcyAwIGluc3RlYWQgb2YgLTAKLSAgICAgICAgeCA9IDA7Ci0KLSAgICBpbnQgZGVjaW1hbFBv
aW50OwotICAgIGludCBzaWduOwotICAgIGNoYXIgcmVzdWx0WzgwXTsKLSAgICBXVEY6OmR0b2Eo
cmVzdWx0LCB4LCAwLCAmZGVjaW1hbFBvaW50LCAmc2lnbiwgTlVMTCk7Ci0gICAgc2l6ZV90IHJl
c3VsdExlbmd0aCA9IHN0cmxlbihyZXN1bHQpOwotICAgIGRlY2ltYWxQb2ludCArPSBkZWNpbWFs
QWRqdXN0OwotCi0gICAgaW50IGkgPSAwOwotICAgIGNoYXIgYnVmWzgwXTsgLy8gZGlnaXQgKyAn
LicgKyBmcmFjdGlvbkRpZ2l0cyAobWF4IDIwKSArICdlJyArIHNpZ24gKyBleHBvbmVudCAobWF4
PykKLSAgICBpZiAoc2lnbikKLSAgICAgICAgYnVmW2krK10gPSAnLSc7Ci0KLSAgICAvLyA/IDk5
OTkgaXMgdGhlIG1hZ2ljYWwgInJlc3VsdCBpcyBJbmYgb3IgTmFOIiB2YWx1ZS4gIHdoYXQncyA5
OTk/PwotICAgIGlmIChkZWNpbWFsUG9pbnQgPT0gOTk5KSB7Ci0gICAgICAgIEFTU0VSVChpICsg
cmVzdWx0TGVuZ3RoIDwgODApOwotICAgICAgICBtZW1jcHkoYnVmICsgaSwgcmVzdWx0LCByZXN1
bHRMZW5ndGgpOwotICAgICAgICBidWZbaSArIHJlc3VsdExlbmd0aF0gPSAnXDAnOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGJ1ZltpKytdID0gcmVzdWx0WzBdOwotCi0gICAgICAgIGlmIChpbmNs
dWRlQWxsRGlnaXRzKQotICAgICAgICAgICAgZnJhY3Rpb25hbERpZ2l0cyA9IHN0YXRpY19jYXN0
PGludD4ocmVzdWx0TGVuZ3RoKSAtIDE7Ci0KLSAgICAgICAgZnJhY3Rpb25hbFBhcnRUb1N0cmlu
ZyhidWYsIGksIHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBmcmFjdGlvbmFsRGlnaXRzKTsKLSAgICAg
ICAgZXhwb25lbnRpYWxQYXJ0VG9TdHJpbmcoYnVmLCBpLCBkZWNpbWFsUG9pbnQpOwotICAgICAg
ICBidWZbaSsrXSA9ICdcMCc7Ci0gICAgfQotICAgIEFTU0VSVChpIDw9IDgwKTsKLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVmKSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRl
KiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OwotICAgIEpTVmFsdWUgdiA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOwotICAgIGlmICghdikK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0KLSAgICBkb3VibGUgZG91
YmxlUHJlY2lzaW9uID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnRlZ2VyUHJlc2VydmVOYU4oZXhl
Yyk7Ci0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotICAgIGlmIChleGVj
LT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpIHx8IGlzbmFuKHgpIHx8IGlzaW5mKHgpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIHYudG9TdHJpbmcoZXhl
YykpKTsKLQotICAgIFVTdHJpbmcgczsKLSAgICBpZiAoeCA8IDApIHsKLSAgICAgICAgcyA9ICIt
IjsKLSAgICAgICAgeCA9IC14OwotICAgIH0gZWxzZQotICAgICAgICBzID0gIiI7Ci0KLSAgICBp
ZiAoIShkb3VibGVQcmVjaXNpb24gPj0gMSAmJiBkb3VibGVQcmVjaXNpb24gPD0gMjEpKSAvLyB0
cnVlIGZvciBOYU4KLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5n
ZUVycm9yKGV4ZWMsICJ0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFu
ZCAyMSIpKTsKLSAgICBpbnQgcHJlY2lzaW9uID0gc3RhdGljX2Nhc3Q8aW50Pihkb3VibGVQcmVj
aXNpb24pOwotCi0gICAgaW50IGUgPSAwOwotICAgIFVTdHJpbmcgbTsKLSAgICBpZiAoeCkgewot
ICAgICAgICBlID0gc3RhdGljX2Nhc3Q8aW50Pihsb2cxMCh4KSk7Ci0gICAgICAgIGRvdWJsZSB0
ZW5zID0gaW50UG93MTAoZSAtIHByZWNpc2lvbiArIDEpOwotICAgICAgICBkb3VibGUgbiA9IGZs
b29yKHggLyB0ZW5zKTsKLSAgICAgICAgaWYgKG4gPCBpbnRQb3cxMChwcmVjaXNpb24gLSAxKSkg
ewotICAgICAgICAgICAgZSA9IGUgLSAxOwotICAgICAgICAgICAgdGVucyA9IGludFBvdzEwKGUg
LSBwcmVjaXNpb24gKyAxKTsKLSAgICAgICAgICAgIG4gPSBmbG9vcih4IC8gdGVucyk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoZmFicygobiArIDEuMCkgKiB0ZW5zIC0geCkgPD0gZmFicyhu
ICogdGVucyAtIHgpKQotICAgICAgICAgICAgKytuOwotICAgICAgICAvLyBtYWludGFpbiBuIDwg
MTBeKHByZWNpc2lvbikKLSAgICAgICAgaWYgKG4gPj0gaW50UG93MTAocHJlY2lzaW9uKSkgewot
ICAgICAgICAgICAgbiAvPSAxMC4wOwotICAgICAgICAgICAgZSArPSAxOwotICAgICAgICB9Ci0g
ICAgICAgIEFTU0VSVChpbnRQb3cxMChwcmVjaXNpb24gLSAxKSA8PSBuKTsKLSAgICAgICAgQVNT
RVJUKG4gPCBpbnRQb3cxMChwcmVjaXNpb24pKTsKLQotICAgICAgICBtID0gaW50ZWdlclBhcnRO
b0V4cChuKTsKLSAgICAgICAgaWYgKGUgPCAtNiB8fCBlID49IHByZWNpc2lvbikgewotICAgICAg
ICAgICAgaWYgKG0ubGVuZ3RoKCkgPiAxKQotICAgICAgICAgICAgICAgIG0gPSBtYWtlU3RyaW5n
KG0uc3Vic3RyaW5nU2hhcmluZ0ltcGwoMCwgMSksICIuIiwgbS5zdWJzdHJpbmdTaGFyaW5nSW1w
bCgxKSk7Ci0gICAgICAgICAgICBpZiAoZSA+PSAwKQotICAgICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBzLCBtLCAiZSsiLCBV
U3RyaW5nOjpudW1iZXIoZSkpKTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBzLCBtLCAiZS0iLCBVU3RyaW5nOjpudW1iZXIo
LWUpKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBtID0gY2hhclNlcXVlbmNl
KCcwJywgcHJlY2lzaW9uKTsKLSAgICAgICAgZSA9IDA7Ci0gICAgfQotCi0gICAgaWYgKGUgPT0g
cHJlY2lzaW9uIC0gMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhl
eGVjLCBtYWtlU3RyaW5nKHMsIG0pKSk7Ci0gICAgaWYgKGUgPj0gMCkgewotICAgICAgICBpZiAo
ZSArIDEgPCBzdGF0aWNfY2FzdDxpbnQ+KG0ubGVuZ3RoKCkpKQotICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIG0uc3Vic3RyaW5n
U2hhcmluZ0ltcGwoMCwgZSArIDEpLCAiLiIsIG0uc3Vic3RyaW5nU2hhcmluZ0ltcGwoZSArIDEp
KSkpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VT
dHJpbmcocywgbSkpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VO
b250cml2aWFsU3RyaW5nKGV4ZWMsIHMsICIwLiIsIGNoYXJTZXF1ZW5jZSgnMCcsIC0oZSArIDEp
KSwgbSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVVN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9V
U3RyaW5nLmNwcAkocmV2aXNpb24gNjU2NDIpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VT
dHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkNvbGxlY3Rvci5oIgotI2luY2x1
ZGUgImR0b2EuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC0zOSw2ICszOCw3IEBACiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi91bmljb2RlL1VURjguaD4KIAogI2lmIEhBVkUoU1RSSU5HU19IKQpAQCAtMTk4LDEwICsx
OTgsOCBAQCBVU3RyaW5nIFVTdHJpbmc6Om51bWJlcihsb25nIGwpCiAKIFVTdHJpbmcgVVN0cmlu
Zzo6bnVtYmVyKGRvdWJsZSBkKQogewotICAgIER0b2FCdWZmZXIgYnVmZmVyOwotICAgIHVuc2ln
bmVkIGxlbmd0aDsKLSAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChkLCBidWZm
ZXIsICZsZW5ndGgpOwotICAgIHJldHVybiBVU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICBO
dW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0
ZShidWZmZXIsIG51bWJlclRvU3RyaW5nKGQsIGJ1ZmZlcikpOwogfQogCiBVU3RyaW5nIFVTdHJp
bmc6OnN1YnN0cmluZ1NoYXJpbmdJbXBsKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KSBjb25zdApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCShyZXZpc2lvbiAwKQor
KysgSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBEZWNpbWFsTnVtYmVyX2gKKyNkZWZpbmUgRGVjaW1hbE51bWJlcl9oCisKKyNp
bmNsdWRlIDx3dGYvZHRvYS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKworZW51bSBSb3VuZGluZ1NpZ25pZmljYW50RmlndXJlc1R5cGUgeyBS
b3VuZGluZ1NpZ25pZmljYW50RmlndXJlcyB9OworZW51bSBSb3VuZGluZ0RlY2ltYWxQbGFjZXNU
eXBlIHsgUm91bmRpbmdEZWNpbWFsUGxhY2VzIH07CisKK2NsYXNzIERlY2ltYWxOdW1iZXIgewor
cHVibGljOgorICAgIERlY2ltYWxOdW1iZXIoZG91YmxlIGQpCisgICAgeworICAgICAgICBib29s
IHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBpZ25vcmVzIHRoZSBzaWduIG9uIC0w
LjAuCisgICAgICAgIGluaXQoc2lnbiwgZCk7CisgICAgfQorCisgICAgLy8gSWYgb3VyIHZlcnNp
b24gb2YgZHRvYSBjb3VsZCByb3VuZCB0byBhIGdpdmVuIG51bWJlciBvZiBzaWduaWZpY2FudCBm
aWd1cmVzIHRoZW4KKyAgICAvLyB3ZSBjb3VsZCByZW1vdmUgdGhlIHByZS1yb3VuZGluZyBjb2Rl
IGZyb20gaGVyZS4gIFdlIGNvdWxkIGFsc28gZG8gc28ganVzdCBieQorICAgIC8vIGNhbGxpbmcg
ZHRvYSBhbmQgcG9zdC1yb3VuZGluZywgaG93ZXZlciBjdXJyZW50bHkgdGhpcyBpcyBzbG93ZXIs
IHNpbmNlIGl0IGZvcmNlcworICAgIC8vIGR0b2EgdG8gZ2VuZXJhdGUgYSBoaWdoZXIgcHJlc2lz
aW9uIHJlc3VsdC4KKyAgICBEZWNpbWFsTnVtYmVyKGRvdWJsZSBkLCBSb3VuZGluZ1NpZ25pZmlj
YW50RmlndXJlc1R5cGUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcykKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghaXNuYW4oZCkgJiYgIWlzaW5mKGQpKTsKKyAgICAgICAgQVNTRVJUKHNpZ25p
ZmljYW50RmlndXJlcyAmJiBzaWduaWZpY2FudEZpZ3VyZXMgPD0gMjEpOworCisgICAgICAgIGJv
b2wgc2lnbiA9IGQgPCAwOyAvLyBUaGlzIChjb3JyZWN0bHkpIGlnbm9yZXMgdGhlIHNpZ24gb24g
LTAuMC4KKyAgICAgICAgZCA9IGZhYnMoZCk7IC8vIG1ha2UgZCBwb3NpdGl2ZSBiZWZvcmUgZ29p
bmcgYW55IGZ1cnRoZXIuCisKKyAgICAgICAgaW50IGFkanVzdCA9IDA7CisgICAgICAgIGlmIChk
KSB7CisgICAgICAgICAgICAvLyBUbyByb3VuZCBhIG51bWJlciB3ZSBhbGlnbiBpdCBzdWNoIHRo
YXQgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGRpZ2l0cyBhcmUKKyAgICAgICAgICAgIC8vIHRvIHRo
ZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIHBvaW50LCB0aGVuIGZsb29yL2NlaWwuICBGb3IgZXhhbXBs
ZSwgdG8gcm91bmQKKyAgICAgICAgICAgIC8vIDEzNTc5IHRvIDMgcy5mLiB3ZSBmaXJzdCBhZGp1
c3QgaXQgdG8gMTM1Ljc5LCB1c2UgZmxvb3IvY2VpbCB0byBvYnRhaW4gdGhlCisgICAgICAgICAg
ICAvLyB2YWx1ZXMgMTM1LzEzNiwgYW5kIHRoZW4gc2VsZWN0IDEzNiAoc2luY2UgdGhpcyBpcyBj
bG9zZXN0IHRvIDEzNS43OSkuCisgICAgICAgICAgICAvLyBUaGVyZSBhcmUgY3VycmVudGx5IChl
eHAgKyAxKSBkaWdpdHMgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgcG9pbnQsCisgICAgICAg
ICAgICAvLyBhbmQgd2Ugd2FudCB0aHNpIHRvIGJlIHNpZ25pZmljYW50RmlndXJlcywgc28gd2Un
cmUgZ29pbmcgdG8gYWRqdXN0IHRoZQorICAgICAgICAgICAgLy8gZXhwb25lbnQgYnkgKChleHAg
KyAxKSAtIHNpZ25pZmljYW50RmlndXJlcykuICBBZGp1c3QgaXMgZWZmZWN0aXZlbHkKKyAgICAg
ICAgICAgIC8vIGEgY291bnQgb2YgaG93IG1hbnkgZGVjaW1hbCBkaWdpdHMgdG8gcmlnaHQtc2hp
ZnQgdGhlIG51bWJlciBieS4KKyAgICAgICAgICAgIGludCBleHAgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZsb29yKGxvZzEwKGQpKSk7CisgICAgICAgICAgICBhZGp1c3QgPSAoZXhwICsgMSkgLSBzaWdu
aWZpY2FudEZpZ3VyZXM7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBhZGp1c3QgdmFsdWUgbWln
aHQgYmUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgLSBvciB6ZXJvLiAgSWYgemVybywgdGhlbgorICAg
ICAgICAgICAgLy8gbm90aGluZyB0byBkbyEgLSB0aGUgbnVtYmVyIGlzIGFscmVhZHkgYXBwcm9w
cmlhdGVseSBhbGlnbmVkLiAgSWYgYWRqdXN0CisgICAgICAgICAgICAvLyBpcyBwb3NpdGl2ZSB0
aGVuIGRpdmlkZSBkIGJ5IDEwXmFkanVzdC4gIElmIGFkanVzdCBpcyBuZWdhdGl2ZSBtdWx0aXBs
eSBkCisgICAgICAgICAgICAvLyBieSAxMF4tYWRqdXN0LiBUaGlzIGlzIG1hdGhlbWF0aWNhbGx5
IHRoZSBzYW1lLCBidXQgYXZvaWRzIHR3byBmcCBkaXZpZGVzCisgICAgICAgICAgICAvLyAob25l
IGluc2lkZSBpbnRQb3cxMCwgd2hlcmUgdGhlIHBvd2VyIGlzIG5lZ2F0aXZlKS4KKyAgICAgICAg
ICAgIGlmIChhZGp1c3QgPiAwKQorICAgICAgICAgICAgICAgIGQgLz0gaW50UG93MTAoYWRqdXN0
KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGFkanVzdCA8IDApCisgICAgICAgICAgICAgICAgZCAq
PSBpbnRQb3cxMCgtYWRqdXN0KTsKKworICAgICAgICAgICAgLy8gVHJ5IHJvdW5kaW5nIHVwICYg
cm91bmRpbmcgZG93biwgc2VsZWN0IHdoaWNoZXZlciBpcyBjbG9zZXN0IChyb3VuZGluZyB1cCBp
ZiBlcXVhbCBkaXN0YW5jZSkuCisgICAgICAgICAgICBkb3VibGUgZmxvb3JPZkQgPSBmbG9vcihk
KTsKKyAgICAgICAgICAgIGRvdWJsZSBjZWlsT2ZEID0gZmxvb3JPZkQgKyAxOworICAgICAgICAg
ICAgZCA9IChmYWJzKGNlaWxPZkQgLSBkKSA8PSBmYWJzKGZsb29yT2ZEIC0gZCkpID8gY2VpbE9m
RCA6IGZsb29yT2ZEOworCisgICAgICAgICAgICAvLyBUaGUgbnVtYmVyJ3MgZXhwb25lbnQgaGFz
IGJlZW4gYWx0ZXJlZCAtIGJ1dCBkb24ndCBjaGFuZ2UgaXQgYmFjayEgIFdlIGNhbgorICAgICAg
ICAgICAgLy8ganVzdCBydW4gZHRvYSBvbiB0aGUgbW9kaWZpZWQgdmFsdWUsIGFuZCBhZGp1c3Qg
dGhlIGV4cG9uZW50IGFmdGVyd2FyZCB0bworICAgICAgICAgICAgLy8gYWNjb3VudCBmb3IgdGhp
cy4KKyAgICAgICAgfQorCisgICAgICAgIGluaXQoc2lnbiwgZCk7CisKKyAgICAgICAgLy8gV2Ug
YWx0ZXJlcmVkIHRoZSB2YWx1ZSB3aGVuIHJvdW5kaW5nIGl0IC0gbW9kaWZ5IHRoZSBleHBvbmVu
dCB0byBhZGp1c3QgZm9yIHRoaXMsCisgICAgICAgIC8vIGJ1dCBkb24ndCBtZXNzIHdpdGggdGhl
IGV4cG9uZW50IG9mIHplcm8uCisgICAgICAgIGlmICghaXNaZXJvKCkpCisgICAgICAgICAgICBt
X2V4cG9uZW50ICs9IGFkanVzdDsKKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHNpZ25pZmlj
YW5kIGRvZXMgbm90IGNvbnRhaW4gbW9yZSBkaWdpdHMgdGhhbiByZXF1ZXN0ZWQuCisgICAgICAg
IHJvdW5kVG9QcmVjaXNpb24oc2lnbmlmaWNhbnRGaWd1cmVzKTsKKyAgICB9CisKKyAgICAvLyBJ
ZiBvdXIgdmVyc2lvbiBvZiBkdG9hIGNvdWxkIHJvdW5kIHRvIGEgZ2l2ZW4gbnVtYmVyIG9mIGRl
Y2ltYWwgcGxhY2VzIHRoZW4gd2UKKyAgICAvLyBjb3VsZCByZW1vdmUgdGhlIHByZS1yb3VuZGlu
ZyBjb2RlIGZyb20gaGVyZS4gIFdlIGNvdWxkIGFsc28gZG8gc28ganVzdCBieSBjYWxsaW5nCisg
ICAgLy8gZHRvYSBhbmQgcG9zdC1yb3VuZGluZywgaG93ZXZlciBjdXJyZW50bHkgdGhpcyBpcyBz
bG93ZXIsIHNpbmNlIGl0IGZvcmNlcyBkdG9hIHRvCisgICAgLy8gZ2VuZXJhdGUgYSBoaWdoZXIg
cHJlc2lzaW9uIHJlc3VsdC4KKyAgICBEZWNpbWFsTnVtYmVyKGRvdWJsZSBkLCBSb3VuZGluZ0Rl
Y2ltYWxQbGFjZXNUeXBlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKSB7CisgICAgICAgIEFTU0VS
VCghaXNuYW4oZCkgJiYgIWlzaW5mKGQpKTsKKyAgICAgICAgQVNTRVJUKGRlY2ltYWxQbGFjZXMg
PD0gMjApOworCisgICAgICAgIGJvb2wgc2lnbiA9IGQgPCAwOyAvLyBUaGlzIChjb3JyZWN0bHkp
IGlnbm9yZXMgdGhlIHNpZ24gb24gLTAuMC4KKyAgICAgICAgZCA9IGZhYnMoZCk7IC8vIE1ha2Ug
ZCBwb3NpdGl2ZSBiZWZvcmUgZ29pbmcgYW55IGZ1cnRoZXIuCisKKyAgICAgICAgQVNTRVJUKGQg
PCAxZSsyMSk7IC8vIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHJvdW5kaW5nIHRvIGRlY2lt
YWwgcGxhY2VzIGZvciB2YWx1ZXMgPj0gMWUrMjEuCisKKyAgICAgICAgLy8gQWRqdXN0IHRoZSBu
dW1iZXIgYnkgaW5jcmVhc2luZyB0aGUgZXhwb25lbnQgYnkgZGVjaW1hbFBsYWNlcywgc3VjaAor
ICAgICAgICAvLyB0aGF0IHdlIGNhbiByb3VuZCB0byB0aGlzIG51bWJlciBvZiBkZWNpbWFsIHBs
YWNlcyBqc2luZyBmbG9vci4KKyAgICAgICAgaWYgKGRlY2ltYWxQbGFjZXMpCisgICAgICAgICAg
ICBkICo9IGludFBvdzEwKGRlY2ltYWxQbGFjZXMpOworICAgICAgICAvLyBUcnkgcm91bmRpbmcg
dXAgJiByb3VuZGluZyBkb3duLCBzZWxlY3Qgd2hpY2hldmVyIGlzIGNsb3Nlc3QgKHJvdW5kaW5n
IHVwIGlmIGVxdWFsIGRpc3RhbmNlKS4KKyAgICAgICAgZG91YmxlIGZsb29yT2ZEID0gZmxvb3Io
ZCk7CisgICAgICAgIGRvdWJsZSBjZWlsT2ZEID0gZmxvb3JPZkQgKyAxOworICAgICAgICBkID0g
KGZhYnMoY2VpbE9mRCAtIGQpIDw9IGZhYnMoZmxvb3JPZkQgLSBkKSkgPyBjZWlsT2ZEIDogZmxv
b3JPZkQ7CisgICAgICAgIC8vIFRoZSBudW1iZXIncyBleHBvbmVudCBoYXMgYmVlbiBhbHRlcmVk
IC0gYnV0IGRvbid0IGNoYW5nZSBpdCBiYWNrISAgV2UgY2FuCisgICAgICAgIC8vIGp1c3QgcnVu
IGR0b2Egb24gdGhlIG1vZGlmaWVkIHZhbHVlLCBhbmQgYWRqdXN0IHRoZSBleHBvbmVudCBhZnRl
cndhcmQgdG8KKyAgICAgICAgLy8gYWNjb3VudCBmb3IgdGhpcy4KKworICAgICAgICBpbml0KHNp
Z24sIGQpOworCisgICAgICAgIC8vIFdlIHJvdW5lZCB0aGUgdmFsdWUgYmVmb3JlIGNhbGxpbmcg
ZHRvYSwgc28gdGhlIHJlc3VsdCBzaG91bGQgbm90IGJlIGZyYWN0aW9uYWwuCisgICAgICAgIEFT
U0VSVChtX2V4cG9uZW50ID49IDApOworCisgICAgICAgIC8vIFdlIGFsdGVyZXJlZCB0aGUgdmFs
dWUgd2hlbiByb3VuZGluZyBpdCAtIG1vZGlmeSB0aGUgZXhwb25lbnQgdG8gYWRqdXN0IGZvciB0
aGlzLAorICAgICAgICAvLyBidXQgZG9uJ3QgbWVzcyB3aXRoIHRoZSBleHBvbmVudCBvZiB6ZXJv
LgorICAgICAgICBpZiAoIWlzWmVybygpKQorICAgICAgICAgICAgbV9leHBvbmVudCAtPSBkZWNp
bWFsUGxhY2VzOworCisgICAgICAgIC8vIFRoZSB2YWx1ZSB3YXMgPCAxZSsyMSBiZWZvcmUgd2Ug
c3RhcnRlZCwgc2hvdWxkIHN0aWxsIGJlLgorICAgICAgICBBU1NFUlQobV9leHBvbmVudCA8IDIx
KTsKKworICAgICAgICB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMgPSAxICsgbV9leHBvbmVu
dCArIGRlY2ltYWxQbGFjZXM7CisgICAgICAgIEFTU0VSVChzaWduaWZpY2FudEZpZ3VyZXMgJiYg
c2lnbmlmaWNhbnRGaWd1cmVzIDw9IDQxKTsKKyAgICAgICAgcm91bmRUb1ByZWNpc2lvbihzaWdu
aWZpY2FudEZpZ3VyZXMpOworICAgIH0KKworICAgIHVuc2lnbmVkIHRvU3RyaW5nRGVjaW1hbChO
dW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQorICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIGFs
d2F5cyBiZSBhdCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRkIHRvIHRoZSBzdHJpbmchCisgICAgICAg
IEFTU0VSVChtX3ByZWNpc2lvbik7CisgICAgICAgIFVDaGFyKiBuZXh0ID0gYnVmZmVyOworCisg
ICAgICAgIC8vIGlmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwg
cmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZvcm06CisgICAgICAgIC8vIFs8c2lnbj5dMC5bPHpl
cm9zPl08c2lnbmlmaWNhbmQ+CisgICAgICAgIGlmIChtX2V4cG9uZW50IDwgMCkgeworICAgICAg
ICAgICAgdW5zaWduZWQgemVyb3MgPSAtbV9leHBvbmVudCAtIDE7CisKKyAgICAgICAgICAgIGlm
IChtX3NpZ24pCisgICAgICAgICAgICAgICAgKm5leHQrKyA9ICctJzsKKyAgICAgICAgICAgICpu
ZXh0KysgPSAnMCc7CisgICAgICAgICAgICAqbmV4dCsrID0gJy4nOworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHplcm9zOyArK2kpCisgICAgICAgICAgICAgICAgKm5leHQr
KyA9ICcwJzsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3ByZWNpc2lv
bjsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSBtX3NpZ25pZmljYW5kW2ldOworCisg
ICAgICAgICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKKyAgICAgICAgfQorCisgICAgICAgIHVu
c2lnbmVkIGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludCA9IG1fZXhwb25lbnQgKyAxOworCisgICAg
ICAgIC8vIElmIHRoZSBwcmVjaXNpb24gaXMgPD0gdGhhbiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB0
byBnZXQgdXAgdG8gdGhlIGRlY2ltYWwKKyAgICAgICAgLy8gcG9pbnQsIHRoZW4gdGhlcmUgaXMg
bm8gZnJhY3Rpb25hbCBwYXJ0LCBudW1iZXIgaXMgb2YgdGhlIGZvcm06CisgICAgICAgIC8vIFs8
c2lnbj5dPHNpZ25pZmljYW5kPls8emVyb3M+XQorICAgICAgICBpZiAobV9wcmVjaXNpb24gPD0g
ZGlnaXRzQmVmb3JlRGVjaW1hbFBvaW50KSB7CisgICAgICAgICAgICBpZiAobV9zaWduKQorICAg
ICAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wcmVjaXNpb247ICsraSkKKyAgICAgICAgICAgICAgICAqbmV4dCsrID0gbV9z
aWduaWZpY2FuZFtpXTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAoZGln
aXRzQmVmb3JlRGVjaW1hbFBvaW50IC0gbV9wcmVjaXNpb24pOyArK2kpCisgICAgICAgICAgICAg
ICAgKm5leHQrKyA9ICcwJzsKKworICAgICAgICAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbnVtYmVyIHN0YXJ0cyBiZWZv
cmUgdGhlIGRlY2ltYWwgcG9pbnQsIGFuZCBlbmRzIGFmdGVyIGl0LAorICAgICAgICAvLyBhcyBz
dWNoIGlzIG9mIHRoZSBmb3JtOgorICAgICAgICAvLyBbPHNpZ24+XTxzaWduaWZpY2FuZC1iZWdp
bj4uPHNpZ25pZmljYW5kLWVuZD4KKworICAgICAgICBpZiAobV9zaWduKQorICAgICAgICAgICAg
Km5leHQrKyA9ICctJzsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRpZ2l0c0Jl
Zm9yZURlY2ltYWxQb2ludDsgKytpKQorICAgICAgICAgICAgKm5leHQrKyA9IG1fc2lnbmlmaWNh
bmRbaV07CisgICAgICAgICpuZXh0KysgPSAnLic7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludDsgaSA8IG1fcHJlY2lzaW9uOyArK2kpCisgICAgICAg
ICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKworICAgICAgICByZXR1cm4gbmV4dCAt
IGJ1ZmZlcjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB0b1N0cmluZ0V4cG9uZW50aWFsKE51bWJl
clRvU3RyaW5nQnVmZmVyICZidWZmZXIpCisgICAgeworICAgICAgICAvLyBTaG91bGQgYWx3YXlz
IGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0byBhZGQgdG8gdGhlIHN0cmluZyEKKyAgICAgICAgQVNT
RVJUKG1fcHJlY2lzaW9uKTsKKworICAgICAgICBVQ2hhciogbmV4dCA9IGJ1ZmZlcjsKKworICAg
ICAgICAvLyBBZGQgdGhlIHNpZ24KKyAgICAgICAgaWYgKG1fc2lnbikKKyAgICAgICAgICAgICpu
ZXh0KysgPSAnLSc7CisKKyAgICAgICAgLy8gQWRkIHRoZSBzaWduaWZpY2FuZAorICAgICAgICAq
bmV4dCsrID0gbV9zaWduaWZpY2FuZFswXTsKKyAgICAgICAgaWYgKG1fcHJlY2lzaW9uID4gMSkg
eworICAgICAgICAgICAgKm5leHQrKyA9ICcuJzsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDE7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSBt
X3NpZ25pZmljYW5kW2ldOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkICJlKyIgb3IgImUt
IgorICAgICAgICAqbmV4dCsrID0gJ2UnOworICAgICAgICBpbnQgZXhwb25lbnQ7CisgICAgICAg
IGlmIChtX2V4cG9uZW50ID49IDApIHsKKyAgICAgICAgICAgICpuZXh0KysgPSAnKyc7CisgICAg
ICAgICAgICBleHBvbmVudCA9IG1fZXhwb25lbnQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAqbmV4dCsrID0gJy0nOworICAgICAgICAgICAgZXhwb25lbnQgPSAtbV9leHBvbmVudDsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCB0aGUgZXhwb25lbnQKKyAgICAgICAgaWYgKGV4
cG9uZW50ID49IDEwMCkKKyAgICAgICAgICAgICpuZXh0KysgPSAnMCcgKyBleHBvbmVudCAvIDEw
MDsKKyAgICAgICAgaWYgKGV4cG9uZW50ID49IDEwKQorICAgICAgICAgICAgKm5leHQrKyA9ICcw
JyArIChleHBvbmVudCAlIDEwMCkgLyAxMDsKKyAgICAgICAgKm5leHQrKyA9ICcwJyArIGV4cG9u
ZW50ICUgMTA7CisKKyAgICAgICAgcmV0dXJuIG5leHQgLSBidWZmZXI7CisgICAgfQorCisgICAg
Ym9vbCBzaWduKCkgeyByZXR1cm4gbV9zaWduOyB9CisgICAgaW50IGV4cG9uZW50KCkgeyByZXR1
cm4gbV9leHBvbmVudDsgfQorICAgIGNvbnN0IGNoYXIqIHNpZ25pZmljYW5kKCkgeyByZXR1cm4g
bV9zaWduaWZpY2FuZDsgfSAvLyBzaWduaWZpY2FuZCBjb250YWlucyBwcmVjaXNpb24gY2hhcmFj
dGVycywgaXMgbm90IG51bGwtdGVybWluYXRlZC4KKyAgICB1bnNpZ25lZCBwcmVjaXNpb24oKSB7
IHJldHVybiBtX3ByZWNpc2lvbjsgfQorCitwcml2YXRlOgorICAgIHZvaWQgaW5pdChib29sIHNp
Z24sIGRvdWJsZSBkKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc25hbihkKSAmJiAhaXNpbmYo
ZCkpOworCisgICAgICAgIGludCBkZWNpbWFsUG9pbnQ7CisgICAgICAgIGludCBzaWduVW51c2Vk
OworICAgICAgICBjaGFyKiByZXN1bHRFbmQgPSAwOworICAgICAgICBXVEY6OmR0b2EobV9zaWdu
aWZpY2FuZCwgZCwgMCwgJmRlY2ltYWxQb2ludCwgJnNpZ25VbnVzZWQsICZyZXN1bHRFbmQpOwor
CisgICAgICAgIG1fc2lnbiA9IHNpZ247CisgICAgICAgIG1fcHJlY2lzaW9uID0gcmVzdWx0RW5k
IC0gbV9zaWduaWZpY2FuZDsKKyAgICAgICAgbV9leHBvbmVudCA9IGRlY2ltYWxQb2ludCAtIDE7
CisKKyAgICAgICAgLy8gTm8gdmFsdWVzIG90aGVyIHRoYW4gemVybyBzaG91bGQgaGF2ZSBhIGxl
YWRpbmcgemVyby4KKyAgICAgICAgQVNTRVJUKG1fc2lnbmlmaWNhbmRbMF0gIT0gJzAnIHx8IG1f
cHJlY2lzaW9uID09IDEpOworICAgICAgICAvLyBaZXJvIHNob3VsZCBhbHdheXMgaGF2ZSBleHBv
bmVudCAwLgorICAgICAgICBBU1NFUlQobV9zaWduaWZpY2FuZFswXSAhPSAnMCcgfHwgIW1fZXhw
b25lbnQpOworICAgIH0KKworICAgIGJvb2wgaXNaZXJvKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX3NpZ25pZmljYW5kWzBdID09ICcwJzsKKyAgICB9CisKKyAgICAvLyBXZSBwcmUtcm91bmQg
dGhlIHZhbHVlcyB0byBkdG9hIC0gd2hpY2ggbGVhZHMgdG8gaXQgZ2VuZXJhdGluZyBmYXN0ZXIg
cmVzdWx0cy4KKyAgICAvLyBCdXQgZHRvYSB3b24ndCBoYXZlIHplcm8gcGFkZGVkIHRoZSBzaWdu
aWZpY2FuZCB0byB0aGUgcHJlY2lzaW9uIHdlIHJlcXVpcmUsCisgICAgLy8gYW5kIGFsc28gbWln
aHQgaGF2ZSBwcm9kdWNlZCB0b28gbWFueSBkaWdpdHMgaWYgcm91bmRpbmcgd2VudCB3cm9uZyBz
b21laG93LgorICAgIC8vIEFkanVzdCBmb3IgdGhpcy4KKyAgICB2b2lkIHJvdW5kVG9QcmVjaXNp
b24odW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNp
Z25pZmljYW50RmlndXJlcyAmJiBzaWduaWZpY2FudEZpZ3VyZXMgPD0gc2l6ZW9mKER0b2FCdWZm
ZXIpKTsKKworICAgICAgICAvLyBJZiB0aGVyZSBhcmUgdG9vIGZldyBvZiB0b28gbWFueSBkaWdp
dHMgaW4gdGhlIHNpZ25pZmljYW5kIHRoZW4gYWRkIG1vcmUsIG9yIHJlbW92ZSBzb21lIQorICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3ByZWNpc2lvbjsgaSA8IHNpZ25pZmljYW50RmlndXJl
czsgKytpKQorICAgICAgICAgICAgbV9zaWduaWZpY2FuZFtpXSA9ICcwJzsKKyAgICAgICAgbV9w
cmVjaXNpb24gPSBzaWduaWZpY2FudEZpZ3VyZXM7CisgICAgfQorCisgICAgYm9vbCBtX3NpZ247
CisgICAgaW50IG1fZXhwb25lbnQ7CisgICAgRHRvYUJ1ZmZlciBtX3NpZ25pZmljYW5kOworICAg
IHVuc2lnbmVkIG1fcHJlY2lzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5n
IFdURjo6RGVjaW1hbE51bWJlcjsKK3VzaW5nIFdURjo6Um91bmRpbmdTaWduaWZpY2FudEZpZ3Vy
ZXM7Cit1c2luZyBXVEY6OlJvdW5kaW5nRGVjaW1hbFBsYWNlczsKKworI2VuZGlmIC8vIERlY2lt
YWxOdW1iZXJfaApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gNjU2NDIpCisrKyBKYXZh
U2NyaXB0Q29yZS93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyODUsODMgKzIyODUs
MzUgQEAgcmV0OgogICAgICAgICAqcnZlID0gczsKIH0KIAotc3RhdGljIEFMV0FZU19JTkxJTkUg
dm9pZCBhcHBlbmQoY2hhciomIG5leHQsIGNvbnN0IGNoYXIqIHNyYywgdW5zaWduZWQgc2l6ZSkK
K2RvdWJsZSBpbnRQb3cxMChpbnQgZSkKIHsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICAqbmV4dCsrID0gKnNyYysrOwotfQotCi12b2lkIGRvdWJsZVRv
U3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KGRvdWJsZSBkLCBEdG9hQnVmZmVyIGJ1ZmZlciwgdW5z
aWduZWQqIHJlc3VsdExlbmd0aCkKLXsKLSAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAvLyBUaGlz
IGZ1bmN0aW9uIHVzZXMgdGhlICJleHBvbmVudGlhdGlvbiBieSBzcXVhcmluZyIgYWxnb3JpdGht
IGFuZAorICAgIC8vIGxvbmcgZG91YmxlIHRvIHF1aWNrbHkgYW5kIHByZWNpc2VseSBjYWxjdWxh
dGUgaW50ZWdlciBwb3dlcnMgb2YgMTAuMC4KIAotICAgIC8vIGF2b2lkIGV2ZXIgcHJpbnRpbmcg
LU5hTiwgaW4gSlMgY29uY2VwdHVhbGx5IHRoZXJlIGlzIG9ubHkgb25lIE5hTiB2YWx1ZQotICAg
IGlmIChpc25hbihkKSkgewotICAgICAgICBhcHBlbmQoYnVmZmVyLCAiTmFOIiwgMyk7Ci0gICAg
ICAgIGlmIChyZXN1bHRMZW5ndGgpCi0gICAgICAgICAgICAqcmVzdWx0TGVuZ3RoID0gMzsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyAtMCAtPiAiMCIKLSAgICBpZiAoIWQpIHsKLSAg
ICAgICAgYnVmZmVyWzBdID0gJzAnOwotICAgICAgICBpZiAocmVzdWx0TGVuZ3RoKQotICAgICAg
ICAgICAgKnJlc3VsdExlbmd0aCA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgLy8g
VGhpcyBpcyBhIGhhbmR5IHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80NDk0NzU2Pgog
Ci0gICAgaW50IGRlY2ltYWxQb2ludDsKLSAgICBpbnQgc2lnbjsKKyAgICBpZiAoIWUpCisgICAg
ICAgIHJldHVybiAxLjA7CiAKLSAgICBEdG9hQnVmZmVyIHJlc3VsdDsKLSAgICBjaGFyKiByZXN1
bHRFbmQgPSAwOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQsIDAsICZkZWNpbWFsUG9pbnQsICZz
aWduLCAmcmVzdWx0RW5kKTsKLSAgICBpbnQgbGVuZ3RoID0gcmVzdWx0RW5kIC0gcmVzdWx0Owot
Ci0gICAgY2hhciogbmV4dCA9IGJ1ZmZlcjsKLSAgICBpZiAoc2lnbikKLSAgICAgICAgKm5leHQr
KyA9ICctJzsKLQotICAgIGlmIChkZWNpbWFsUG9pbnQgPD0gMCAmJiBkZWNpbWFsUG9pbnQgPiAt
NikgewotICAgICAgICAqbmV4dCsrID0gJzAnOwotICAgICAgICAqbmV4dCsrID0gJy4nOwotICAg
ICAgICBmb3IgKGludCBqID0gZGVjaW1hbFBvaW50OyBqIDwgMDsgaisrKQotICAgICAgICAgICAg
Km5leHQrKyA9ICcwJzsKLSAgICAgICAgYXBwZW5kKG5leHQsIHJlc3VsdCwgbGVuZ3RoKTsKLSAg
ICB9IGVsc2UgaWYgKGRlY2ltYWxQb2ludCA8PSAyMSAmJiBkZWNpbWFsUG9pbnQgPiAwKSB7Ci0g
ICAgICAgIGlmIChsZW5ndGggPD0gZGVjaW1hbFBvaW50KSB7Ci0gICAgICAgICAgICBhcHBlbmQo
bmV4dCwgcmVzdWx0LCBsZW5ndGgpOwotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBk
ZWNpbWFsUG9pbnQgLSBsZW5ndGg7IGorKykKLSAgICAgICAgICAgICAgICAqbmV4dCsrID0gJzAn
OworICAgIGJvb2wgbmVnYXRpdmUgPSBlIDwgMDsKKyAgICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2
ZSA/IC1lIDogZTsKKworICAgIGxvbmcgZG91YmxlIHJlc3VsdCA9IDEwLjA7CisgICAgYm9vbCBm
b3VuZE9uZSA9IGZhbHNlOworICAgIGZvciAoaW50IGJpdCA9IDMxOyBiaXQgPj0gMDsgYml0LS0p
IHsKKyAgICAgICAgaWYgKCFmb3VuZE9uZSkgeworICAgICAgICAgICAgaWYgKChleHAgPj4gYml0
KSAmIDEpCisgICAgICAgICAgICAgICAgZm91bmRPbmUgPSB0cnVlOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgYXBwZW5kKG5leHQsIHJlc3VsdCwgZGVjaW1hbFBvaW50KTsKLSAgICAg
ICAgICAgICpuZXh0KysgPSAnLic7Ci0gICAgICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0ICsg
ZGVjaW1hbFBvaW50LCBsZW5ndGggLSBkZWNpbWFsUG9pbnQpOwotICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChyZXN1bHRbMF0gPCAnMCcgfHwgcmVzdWx0WzBdID4gJzknKQotICAgICAgICBhcHBl
bmQobmV4dCwgcmVzdWx0LCBsZW5ndGgpOwotICAgIGVsc2UgewotICAgICAgICAqbmV4dCsrID0g
cmVzdWx0WzBdOwotICAgICAgICBpZiAobGVuZ3RoID4gMSkgewotICAgICAgICAgICAgKm5leHQr
KyA9ICcuJzsKLSAgICAgICAgICAgIGFwcGVuZChuZXh0LCByZXN1bHQgKyAxLCBsZW5ndGggLSAx
KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIHJlc3VsdDsKKyAgICAgICAgICAgIGlm
ICgoZXhwID4+IGJpdCkgJiAxKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEw
LjA7CiAgICAgICAgIH0KLQotICAgICAgICAqbmV4dCsrID0gJ2UnOwotICAgICAgICAqbmV4dCsr
ID0gKGRlY2ltYWxQb2ludCA+PSAwKSA/ICcrJyA6ICctJzsKLSAgICAgICAgLy8gZGVjaW1hbFBv
aW50IGNhbid0IGJlIG1vcmUgdGhhbiAzIGRpZ2l0cyBkZWNpbWFsIGdpdmVuIHRoZQotICAgICAg
ICAvLyBuYXR1cmUgb2YgZmxvYXQgcmVwcmVzZW50YXRpb24KLSAgICAgICAgaW50IGV4cG9uZW50
aWFsID0gZGVjaW1hbFBvaW50IC0gMTsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFsIDwgMCkKLSAg
ICAgICAgICAgIGV4cG9uZW50aWFsID0gLWV4cG9uZW50aWFsOwotICAgICAgICBpZiAoZXhwb25l
bnRpYWwgPj0gMTAwKQotICAgICAgICAgICAgKm5leHQrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCcw
JyArIGV4cG9uZW50aWFsIC8gMTAwKTsKLSAgICAgICAgaWYgKGV4cG9uZW50aWFsID49IDEwKQot
ICAgICAgICAgICAgKm5leHQrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIChleHBvbmVudGlh
bCAlIDEwMCkgLyAxMCk7Ci0gICAgICAgICpuZXh0KysgPSBzdGF0aWNfY2FzdDxjaGFyPignMCcg
KyBleHBvbmVudGlhbCAlIDEwKTsKICAgICB9Ci0gICAgaWYgKHJlc3VsdExlbmd0aCkKLSAgICAg
ICAgKnJlc3VsdExlbmd0aCA9IG5leHQgLSBidWZmZXI7CisKKyAgICBpZiAobmVnYXRpdmUpCisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KDEuMCAvIHJlc3VsdCk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4ocmVzdWx0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RG
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3d0Zi9kdG9hLmgJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvd3Rm
L2R0b2EuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTUgKzM1LDEwIEBAIGRvdWJsZSBzdHJ0b2Qo
Y29uc3QgY2hhciogczAwLCBjaGFyKiogc2UKIAogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
Owogdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3VibGUgZCwgaW50IG5kaWdpdHMsIGlu
dCogZGVjcHQsIGludCogc2lnbiwgY2hhcioqIHJ2ZSk7Ci0KLS8vIGR0b2EoKSBmb3IgRUNNQS0y
NjIgJ1RvU3RyaW5nIEFwcGxpZWQgdG8gdGhlIE51bWJlciBUeXBlLicKLS8vIFRoZSAqcmVzdWx0
TGVuZ3RoIHdpbGwgaGF2ZSB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRhbnQgc3RyaW5nIGluIGJ1
ZmVyLgotLy8gVGhlIHJlc3VsdGFudCBzdHJpbmcgaXNuJ3QgdGVybWluYXRlZCBieSAwLgotdm9p
ZCBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChkb3VibGUsIER0b2FCdWZmZXIsIHVu
c2lnbmVkKiByZXN1bHRMZW5ndGgpOworZG91YmxlIGludFBvdzEwKGludCk7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OkR0b2FCdWZmZXI7Ci11c2luZyBXVEY6OmRvdWJsZVRv
U3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0OwogCiAjZW5kaWYgLy8gV1RGX2R0b2FfaApJbmRleDog
SmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEph
dmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxzdGRhcmcuaD4KICNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2R0b2EuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5o
PgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIApAQCAtOTQ3LDYgKzk0Nyw0MSBA
QCBmbG9hdCBjaGFyYWN0ZXJzVG9GbG9hdChjb25zdCBVQ2hhciogZGF0CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGZsb2F0PihjaGFyYWN0ZXJzVG9Eb3VibGUoZGF0YSwgbGVuZ3RoLCBvaykpOwog
fQogCitzdGF0aWMgdW5zaWduZWQgY29weVRvU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmluZywgdW5z
aWduZWQgbGVuZ3RoLCBOdW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQoreworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgYnVmZmVyW2ldID0gc3Ry
aW5nW2ldOworICAgIHJldHVybiBsZW5ndGg7Cit9CisKK3N0YXRpYyBORVZFUl9JTkxJTkUgdW5z
aWduZWQgbmFuT3JJbmZUb1N0cmluZyhkb3VibGUgeCwgTnVtYmVyVG9TdHJpbmdCdWZmZXImIGJ1
ZmZlcikKK3sKKyAgICBBU1NFUlQoaXNuYW4oeCkgfHwgaXNpbmYoeCkpOworICAgIGlmIChpc25h
bih4KSkKKyAgICAgICAgcmV0dXJuIGNvcHlUb1N0cmluZygiTmFOIiwgMywgYnVmZmVyKTsKKyAg
ICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiBjb3B5VG9TdHJpbmcoIi1JbmZpbml0eSIsIDks
IGJ1ZmZlcik7CisgICAgcmV0dXJuIGNvcHlUb1N0cmluZygiSW5maW5pdHkiLCA4LCBidWZmZXIp
OworfQorCisvLyB0b1N0cmluZyBjb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyB3aXRob3V0
IHJvdW5kaW5nLiBGb3IgdmFsdWVzIGluIHRoZSByYW5nZQorLy8gMWUtNiA8PSB4IDwgMWUrMjEg
dGhlIHJlc3VsdCBpcyBmb3JtYXR0ZWQgYXMgYSBkZWNpbWFsLCB3aXRoIHZhbHVlcyBvdXRzaWRl
IG9mCisvLyB0aGlzIHJhbmdlIGJlaW5nIGZvcm1hdHRlZCBhcyBhbiBleHBvbmVudGlhbC4KK3Vu
c2lnbmVkIG51bWJlclRvU3RyaW5nKGRvdWJsZSB4LCBOdW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVm
ZmVyKQoreworICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgorICAgIGlmIChVTkxJS0VM
WShpc25hbih4KSB8fCBpc2luZih4KSkpCisgICAgICAgIHJldHVybiBuYW5PckluZlRvU3RyaW5n
KHgsIGJ1ZmZlcik7CisKKyAgICAvLyBDb252ZXJ0IHRvIGRlY2ltYWwsIG5vIHJvdW5kaW5nLgor
ICAgIERlY2ltYWxOdW1iZXIgbnVtYmVyKHgpOworCisgICAgLy8gRm9ybWF0IGFzIGRlY2ltYWwg
b3IgZXhwb25lbnRpYWwsIGRlcGVuZGluZyBvbiB0aGUgZXhwb25lbnQuCisgICAgcmV0dXJuIG51
bWJlci5leHBvbmVudCgpID49IC02ICYmIG51bWJlci5leHBvbmVudCgpIDwgMjEKKyAgICAgICAg
PyBudW1iZXIudG9TdHJpbmdEZWNpbWFsKGJ1ZmZlcikKKyAgICAgICAgOiBudW1iZXIudG9TdHJp
bmdFeHBvbmVudGlhbChidWZmZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2lmbmRl
ZiBOREVCVUcKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCShyZXZpc2lvbiA2
NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw2ICs1MiwxMCBAQCBjbGFzcyBCU3RyaW5nOwogCiBuYW1lc3BhY2UgV1RGIHsK
IAorLy8gU2l6ZSA9IDgwIGZvciBzaXplb2YoRHRvYUJ1ZmZlcikgKyBzb21lIHNpZ24gYml0cywg
ZGVjaW1hbCBwb2ludCwgJ2UnLCBleHBvbmVudCBkaWdpdHMuCit0eXBlZGVmIFVDaGFyIE51bWJl
clRvU3RyaW5nQnVmZmVyWzk2XTsKK3Vuc2lnbmVkIG51bWJlclRvU3RyaW5nKGRvdWJsZSwgTnVt
YmVyVG9TdHJpbmdCdWZmZXImKTsKKwogY2xhc3MgQ1N0cmluZzsKIAogLy8gRGVjbGFyYXRpb25z
IG9mIHN0cmluZyBvcGVyYXRpb25zCkBAIC00NTMsNCArNDU3LDcgQEAgdXNpbmcgV1RGOjpjaGFy
YWN0ZXJzVG9JbnQ7CiB1c2luZyBXVEY6OmNoYXJhY3RlcnNUb0Zsb2F0OwogdXNpbmcgV1RGOjpj
aGFyYWN0ZXJzVG9Eb3VibGU7CiAKK3VzaW5nIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXI7Cit1
c2luZyBXVEY6Om51bWJlclRvU3RyaW5nOworCiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91
Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ4NworCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvV1RGU3RyaW5nLmg6IEFkZGVkLgor
CiAyMDEwLTA4LTExICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBSdWJiZXIgc3RhbXBzIGJ5IERhcmluIEFkbGVyICYgU2FtIFdlaW5pZy4KSW5k
ZXg6IEphdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0
L1dURlN0cmluZy5oCShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL3RleHQvV1RGU3RyaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XVEZTdHJpbmcuaD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTg2NSkKKysr
IFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAt
MDgtMjMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgICogaHRtbC9MZWdhY3lI
VE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplRm9yTnVtYmVy
VHlwZSk6CisgICAgICAgICAgICBVcGRhdGUgZnVuY3Rpb24gY2FsbCB0byBudW1iZXJUb1N0cmlu
Zy4KKwogMjAxMC0wOC0yMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9odG1sL0xlZ2FjeUhU
TUxUcmVlQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxU
cmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDY1NjQyKQorKysgV2ViQ29yZS9odG1sL0xlZ2FjeUhU
TUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NTEsMTAgKzE3NTEsOCBAQCBT
dHJpbmcgc2VyaWFsaXplRm9yTnVtYmVyVHlwZShkb3VibGUgbnVtCiB7CiAgICAgLy8gQWNjb3Jk
aW5nIHRvIEhUTUw1LCAidGhlIGJlc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciBuIGFz
IGEgZmxvYXRpbmcKICAgICAvLyBwb2ludCBudW1iZXIiIGlzIGEgc3RyaW5nIHByb2R1Y2VkIGJ5
IGFwcGx5aW5nIFRvU3RyaW5nKCkgdG8gbi4KLSAgICBEdG9hQnVmZmVyIGJ1ZmZlcjsKLSAgICB1
bnNpZ25lZCBsZW5ndGg7Ci0gICAgZG91YmxlVG9TdHJpbmdJbkphdmFTY3JpcHRGb3JtYXQobnVt
YmVyLCBidWZmZXIsICZsZW5ndGgpOwotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLCBsZW5ndGgp
OworICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICByZXR1cm4gU3RyaW5nKGJ1
ZmZlciwgbnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKIH0KIAogYm9vbCBwYXJzZVRv
RG91YmxlRm9yTnVtYmVyVHlwZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlKiBvdXQpCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA2NTg2NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA4LTIzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJh
cnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBCdWcgNDQ0ODcgLSBDbGVhbiB1cCBOdW1iZXJQcm90b3R5cGUuY3BwCisK
KyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHNvbWUgbGF5b3V0IHRlc3QgcmVzdWx0cyAtIGlu
IGFsbCB0aGVzZSBjYXNlcyB3ZSB3ZXJlCisgICAgICAgIG5vdCBwcmV2aW91c2x5IGFjY3VyYXRl
IHRvIHNwZWMgZGVmaW5lZCBiZWhhdmlvdXIsIGFuZCB3ZSBhcmUgc3RpbGwgbm90CisgICAgICAg
IC0gYnV0IG92ZXJhbGwgdGhpcyBjaGFuZ2VzIHJlZHVjZXMgdGhlIG92ZXJhbGwgbWFnbml0dWRl
IG9mIGVycm9yIGR1ZSB0bworICAgICAgICByb3VuZGluZyBkaWZmZXJlbmNlcy4gVGhlIHVuZGVy
bHlpbmcgcHJvYmxlbSBpcyB0aGF0IHdlIHNob3VsZCBiZSB1c2luZworICAgICAgICBkdG9hIHRv
IGdlbmVyYXRlIHJlc3VsdHMgdG8gYSBzcGVjaWZpZWQgYWNjdXJhY3ksIHJhdGhlciB0aGFuIHJl
bHlpbmcgb24KKyAgICAgICAgcHJlLXJvdW5kaW5nIHRoZSBpbnB1dCB2YWx1ZXMuIFdlIHNob3Vs
ZCBsb29rIGF0IHJlZW5hYmxpbmcgb3VyIGR0b2EKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdG8g
d29yayBpbiB0aGlzIGZhc2hpb24gYXMgYSBzZXBhcmF0ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBm
YXN0L2pzL2tkZS9OdW1iZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMva2RlL3Nj
cmlwdC10ZXN0cy9OdW1iZXIuanM6CisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9FeHBvbmVu
dGlhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9maXhlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9udW1iZXItdG9wcmVjaXNpb24tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b0V4cG9uZW50aWFs
LmpzOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b2ZpeGVkLmpzOgor
ICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10b3ByZWNpc2lvbi5qczoKKwog
MjAxMC0wOC0yMyAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvbnVt
YmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0
MikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNywxMiArMTcsMTIgQEAgUEFTUyAoMTIzLjQ1NikudG9F
eHBvbmVudGlhbCgzKSBpcyAiMS4yMwogUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCg1KSBp
cyAiMS4yMzQ1NmUrMiIKIFBBU1MgKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoNikgaXMgIjEuMjM0
NTYwZSsyIgogRkFJTCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMCkgc2hvdWxkIGJlIDEuMjM0
NTYwMDAwMDAwMDAwMDMwNzBlKzIuIFdhcyAxLjIzNDU2MDAwMDAwMDAwMDAwMDAwZSsyLgotRkFJ
TCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkgc2hvdWxkIGJlIDEuMjM0NTYwMDAwMDAwMDAw
MDMwNjk1ZSsyLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFy
Z3VtZW50IG11c3QgYmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIzLjQ1NikudG9FeHBvbmVudGlh
bCgxMDApIHNob3VsZCBiZSAxLjIzNDU2MDAwMDAwMDAwMDAzMDY5NTQ0NjE4NDgzNjMyODAyOTYz
MjU2ODM1OTM3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDBlKzIuIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJn
dW1lbnQgbXVzdCBiZXR3ZWVuIDAgYW5kIDIwCi1QQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFs
KDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVu
dCBtdXN0IGJldHdlZW4gMCBhbmQgMjAuCi1QQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0x
KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11
c3QgYmV0d2VlbiAwIGFuZCAyMC4KLVBBU1MgKDEyMzQuNTY3KS50b0V4cG9uZW50aWFsKHBvc0lu
ZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBt
dXN0IGJldHdlZW4gMCBhbmQgMjAuCi1QQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChuZWdJ
bmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQg
bXVzdCBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0
IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMCkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0
IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMSkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0
IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSB0
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3Qg
YmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0V4cG9uZW50aWFsKHBvc0lu
ZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBt
dXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9FeHBvbmVudGlhbChu
ZWdJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgogUEFTUyBwb3NJbmYudG9FeHBvbmVudGlhbCgp
IGlzICJJbmZpbml0eSIKIFBBU1MgbmVnSW5mLnRvRXhwb25lbnRpYWwoKSBpcyAiLUluZmluaXR5
IgogUEFTUyBuYW4udG9FeHBvbmVudGlhbCgpIGlzICJOYU4iCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU2NDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNDIsMTYgKzQyLDE2IEBAIFBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDIp
IGlzICIxMjM0LjU3IgogUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMi45KSBpcyAiMTIzNC41NyIK
IFBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDUpIGlzICIxMjM0LjU2NzAwIgogRkFJTCAoMTIzNC41
NjcpLnRvRml4ZWQoMjApIHNob3VsZCBiZSAxMjM0LjU2NzAwMDAwMDAwMDAwNzI3NTk2LiBXYXMg
MTIzNC41NjcwMDAwMDAwMDAwMDAwMDAwMC4KLUZBSUwgKDEyMzQuNTY3KS50b0ZpeGVkKDIxKSBz
aG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTguIFRocmV3IGV4Y2VwdGlvbiBSYW5n
ZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAy
MAotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoMTAwKSBzaG91bGQgYmUgMTIzNC41NjcwMDAwMDAw
MDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAK
LVBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6
IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgotRkFJ
TCAoMTIzNC41NjcpLnRvRml4ZWQoLTEpIHNob3VsZCBiZSAxMjMwLiBUaHJldyBleGNlcHRpb24g
UmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBh
bmQgMjAKLUZBSUwgKDEyMzQuNTY3KS50b0ZpeGVkKC00KSBzaG91bGQgYmUgMC4gVGhyZXcgZXhj
ZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3
ZWVuIDAgYW5kIDIwCi1GQUlMICgxMjM0LjU2NykudG9GaXhlZCgtNSkgc2hvdWxkIGJlIDAuIFRo
cmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3Qg
YmUgYmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoLTIwKSBzaG91bGQg
YmUgMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwCi1QQVNTICgxMjM0LjU2NykudG9GaXhlZCgtMjEp
IHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KLVBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKHBvc0luZikg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgotUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQobmVnSW5mKSB0
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0
IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgyMSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4g
MCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgxMDApIHRocmV3IGV4Y2VwdGlvbiBS
YW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgor
UEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMTAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
dG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQu
NTY3KS50b0ZpeGVkKC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVk
KC00KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3Qg
YmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC01KSB0aHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAw
IGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC0yMCkgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQ
QVNTICgxMjM0LjU2NykudG9GaXhlZCgtMjEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0
b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41
NjcpLnRvRml4ZWQocG9zSW5mKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgp
IGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0Zp
eGVkKG5lZ0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVu
dCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCiBQQVNTIHBvc0luZi50b0ZpeGVkKCkgaXMgIklu
ZmluaXR5IgogUEFTUyBuZWdJbmYudG9GaXhlZCgpIGlzICItSW5maW5pdHkiCiBQQVNTIG5hbi50
b0ZpeGVkKCkgaXMgIk5hTiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvcHJl
Y2lzaW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL251
bWJlci10b3ByZWNpc2lvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9qcy9udW1iZXItdG9wcmVjaXNpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw4ICsyMyw4IEBAIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyKSBpcyAi
MS4yZSsKIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyLjkpIGlzICIxLjJlKzMiCiBQQVNT
ICgxMjM0LjU2NykudG9QcmVjaXNpb24oNSkgaXMgIjEyMzQuNiIKIEZBSUwgKDEyMzQuNTY3KS50
b1ByZWNpc2lvbigyMSkgc2hvdWxkIGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3MjguIFdhcyAxMjM0
LjU2NzAwMDAwMDAwMDAwMDAwLgotRkFJTCAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIyKSBzaG91
bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzYuIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9y
OiB0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMQotRkFJTCAo
MTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMCkgc2hvdWxkIGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3
Mjc1OTU3NjE0MTgzNDI1OTAzMzIwMzEyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9Q
cmVjaXNpb24oKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjEKK1BBU1MgKDEyMzQu
NTY3KS50b1ByZWNpc2lvbigyMikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lz
aW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgorUEFTUyAoMTIzNC41Njcp
LnRvUHJlY2lzaW9uKDEwMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9u
KCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRv
UHJlY2lzaW9uKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkg
YXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJl
Y2lzaW9uKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkg
YXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJl
Y2lzaW9uKG5lZ0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkg
YXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9rZGUvTnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL2tkZS9OdW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0MikKKysrIExheW91
dFRlc3RzL2Zhc3QvanMva2RlL051bWJlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTE4OCwxMSArMTg4LDExIEBAIFBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0UKIFBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEz
KSBpcyAiMS4yMzQ1Njc4OTAxMjM1ZSsyIgogUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3
ODkwMTIpLnRvRXhwb25lbnRpYWwoMTQpIGlzICIxLjIzNDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBO
dW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTUpIGlzICIxLjIz
NDU2Nzg5MDEyMzQ1N2UrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE2KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcwZSsyIgotUEFTUyBOdW1iZXIo
MTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcpIGlzICIxLjIzNDU2Nzg5
MDEyMzQ1NzAwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoMTgpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzEwMGUrMiIKLVBBU1MgTnVtYmVyKDEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAiMS4yMzQ1Njc4OTAx
MjM0NTcwMDAwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoMjApIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyIgorUEFTUyBOdW1iZXIo
MTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTYpIGlzICIxLjIzNDU2Nzg5
MDEyMzQ1NjhlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgxNykgaXMgIjEuMjM0NTY3ODkwMTIzNDU2ODBlKzIiCitQQVNTIE51bWJlcigxMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOCkgaXMgIjEuMjM0NTY3ODkwMTIz
NDU2ODAwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25l
bnRpYWwoMTkpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NjcwMDBlKzIiCitQQVNTIE51bWJlcigxMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIjEuMjM0NTY3ODkwMTIz
NDU2ODAwMDBlKzIiCiBQQVNTIHRyeSB7IE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMiku
dG9FeHBvbmVudGlhbCgyMSkgfSBjYXRjaCAoZSkgeyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2Un
KSA+PSAwOyB9IGlzIHRydWUKIFBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMiku
dG9FeHBvbmVudGlhbCgpIGlzICItMS4yMzQ1Njc4OTAxMjM0NTY4ZSsyIgogUEFTUyB0cnkgeyBO
dW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKC0xKSB9IGNhdGNo
IChlKSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0gaXMgdHJ1ZQpAQCAtMjEy
LDExICsyMTIsMTEgQEAgUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50bwog
UEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSBp
cyAiLTEuMjM0NTY3ODkwMTIzNWUrMiIKIFBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxNCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBO
dW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSBpcyAiLTEu
MjM0NTY3ODkwMTIzNDU3ZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEy
KS50b0V4cG9uZW50aWFsKDE2KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3MGUrMiIKLVBBU1MgTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykgaXMgIi0xLjIz
NDU2Nzg5MDEyMzQ1NzAwZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEy
KS50b0V4cG9uZW50aWFsKDE4KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3MTAwZSsyIgotUEFTUyBO
dW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAiLTEu
MjM0NTY3ODkwMTIzNDU3MDAwMGUrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyIgor
UEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSBp
cyAiLTEuMjM0NTY3ODkwMTIzNDU2OGUrMiIKK1BBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1
Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyIgor
UEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSBp
cyAiLTEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyIgorUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU2NzAwMGUr
MiIKK1BBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgy
MCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsyIgogUEFTUyB0cnkgeyBOdW1iZXIoLTEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIxKSB9IGNhdGNoIChlKSB7IFN0
cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0gaXMgdHJ1ZQogUEFTUyBOdW1iZXIoLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDEpLnRvRXhwb25lbnRpYWwoKSBpcyAiMWUtMjIiCiBQQVNTIE51
bWJlciguMDAwMDAwMDAwMDAwMDAwMDAwMDAxMikudG9FeHBvbmVudGlhbCgpIGlzICIxLjJlLTIx
IgpAQCAtMzQ4LDExICszNDgsMTEgQEAgUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMwogUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxNCkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzUiCiBQQVNTIE51bWJlcigwLjAwMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE1KSBpcyAiMC4wMDAxMjM0NTY3
ODkwMTIzNDYiCiBQQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDE2KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU3IgotUEFTUyBOdW1iZXIoMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykgaXMgIjAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjgiCi1QQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDE4KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAiCi1QQVNTIE51
bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAi
MC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwIgotUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njcw
MDAiCi1QQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDIxKSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwMDAiCitGQUlMIE51bWJlcigwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBzaG91bGQgYmUgMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Ny4gV2FzIDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjguCitGQUlMIE51
bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBzaG91
bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY2
MC4KK0ZBSUwgTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMTkpIHNob3VsZCBiZSAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTMuIFdhcyAwLjAwMDEyMzQ1
Njc4OTAxMjM0NTY4MDAuCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDIwKSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzMC4g
V2FzIDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjUwMDAuCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3
ODkwMTIzNDU2NzEyOTcuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwMC4KIFBBU1MgTnVt
YmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigpIGlzICIxMjM0NS42
Nzg5MDEyMzQ1NjciCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9Q
cmVjaXNpb24oMSkgaXMgIjFlKzQiCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAx
MjM0NSkudG9QcmVjaXNpb24oMikgaXMgIjEuMmUrNCIKQEAgLTM3Myw3ICszNzMsNyBAQCBQQVNT
IE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkuCiBQQVNTIE51bWJlcigxMjM0NS42
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIGlzICIxMjM0NS42Nzg5MDEyMzQ1
NjgiCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24o
MTgpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjYwIgogUEFTUyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAiMTIzNDUuNjc4OTAxMjM0NTY4MDAiCi1Q
QVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlz
ICIxMjM0NS42Nzg5MDEyMzQ1NjUwMDAiCitQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4
OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjcwMDAiCiBQQVNT
IE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIGlzICIx
MjM0NS42Nzg5MDEyMzQ1NjcwMDAwIgogUEFTUyBOdW1iZXIoLS4wMDAwMDAwMDEyMzQ1KS50b1By
ZWNpc2lvbigyKSBpcyAiLTEuMmUtOSIKIFBBU1MgTnVtYmVyKC0uMDAwMDAwMDEyMzQ1KS50b1By
ZWNpc2lvbigyKSBpcyAiLTEuMmUtOCIKQEAgLTQwOCwxMSArNDA4LDExIEBAIFBBU1MgTnVtYmVy
KC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIKIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE0KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEy
MzUiCiBQQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxNSkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NiIKIFBBU1MgTnVtYmVyKC0wLjAwMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE2KSBpcyAiLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1NyIKLVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDE3KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgiCi1QQVNTIE51bWJl
cigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgaXMgIi0w
LjAwMDEyMzQ1Njc4OTAxMjM0NTY4MCIKLVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njgw
MCIKLVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDIwKSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAiCi1QQVNTIE51bWJlcigtMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkgaXMgIi0wLjAwMDEy
MzQ1Njc4OTAxMjM0NTY4MDAwMCIKK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1
NjcuIFdhcyAtMC4wMDAxMjM0NTY3ODkwMTIzNDU2OC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBzaG91bGQgYmUgLTAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjcxLiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjYwLgorRkFJTCBOdW1i
ZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIHNob3Vs
ZCBiZSAtMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzLiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1
NjgwMC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDIwKSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMzAuIFdhcyAtMC4w
MDAxMjM0NTY3ODkwMTIzNDU2NTAwMC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEy
MzQ1NjcxMjk3LiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAwLgogUEFTUyBOdW1iZXIo
LTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigpIGlzICItMTIzNDUuNjc4
OTAxMjM0NTY3IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxKSBpcyAiLTFlKzQiCiBQQVNTIE51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDIpIGlzICItMS4yZSs0IgpAQCAtNDMzLDcgKzQzMyw3IEBAIFBB
U1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkKIFBBU1MgTnVtYmVyKC0xMjM0
NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIGlzICItMTIzNDUuNjc4OTAx
MjM0NTY4IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxOCkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjYwIgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1
NjgwMCIKLVBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMjApIGlzICItMTIzNDUuNjc4OTAxMjM0NTY1MDAwIgorUEFTUyBOdW1iZXIoLTEyMzQ1LjY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1
NjcwMDAiCiBQQVNTIE51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDIxKSBpcyAiLTEyMzQ1LjY3ODkwMTIzNDU2NzAwMDAiCiBQQVNTIE51bWJlcigwKS50b1By
ZWNpc2lvbigpIGlzICIwIgogUEFTUyBOdW1iZXIoMCkudG9QcmVjaXNpb24oMSkgaXMgIjAiCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9zY3JpcHQtdGVzdHMvTnVtYmVyLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMva2RlL3NjcmlwdC10ZXN0cy9OdW1iZXIuanMJ
KHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvc2NyaXB0LXRlc3Rz
L051bWJlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjAzLDExICsyMDMsMTEgQEAgc2hvdWxkQmUo
Ik51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMgogc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxMykiLCJcIjEuMjM0NTY3ODkwMTIzNWUr
MlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE0KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NmUrMlwiIik7CiBzaG91bGRCZSgiTnVtYmVy
KDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSIsIlwiMS4yMzQ1Njc4
OTAxMjM0NTdlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAx
MikudG9FeHBvbmVudGlhbCgxNikiLCJcIjEuMjM0NTY3ODkwMTIzNDU3MGUrMlwiIik7Ci1zaG91
bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE3KSIs
IlwiMS4yMzQ1Njc4OTAxMjM0NTcwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTcx
MDBlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxOSkiLCJcIjEuMjM0NTY3ODkwMTIzNDU3MDAwMGUrMlwiIik7Ci1zaG91bGRC
ZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIwKSIsIlwi
MS4yMzQ1Njc4OTAxMjM0NTcwMDAwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY4
ZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhw
b25lbnRpYWwoMTcpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyXCIiKTsKK3Nob3VsZEJlKCJO
dW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTgpIiwiXCIxLjIz
NDU2Nzg5MDEyMzQ1NjgwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY3MDAwZSsy
XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25l
bnRpYWwoMjApIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsyXCIiKTsKIHNob3VsZEJlVHJ1
ZSgidHJ5IHsgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIx
KSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0iKTsKIHNo
b3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKCki
LCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjhlKzJcIiIpOwogc2hvdWxkQmVUcnVlKCJ0cnkgeyBOdW1i
ZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKC0xKSB9IGNhdGNoIChl
KSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0iKTsKQEAgLTIyNywxMSArMjI3
LDExIEBAIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEKIHNob3VsZEJl
KCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSIsIlwi
LTEuMjM0NTY3ODkwMTIzNWUrMlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEy
MzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ2ZSsyXCIi
KTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE1KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3ZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSIsIlwiLTEuMjM0NTY3
ODkwMTIzNDU3MGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4
OTAxMikudG9FeHBvbmVudGlhbCgxNykiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwZSsyXCIiKTsK
LXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFs
KDE4KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MTAwZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIsIlwiLTEuMjM0NTY3
ODkwMTIzNDU3MDAwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1
Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsy
XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE2KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2OGUrMlwiIik7CitzaG91bGRCZSgiTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykiLCJcIi0xLjIz
NDU2Nzg5MDEyMzQ1NjgwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2ODAwZSsy
XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE5KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2NzAwMGUrMlwiIik7CitzaG91bGRCZSgi
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkiLCJcIi0x
LjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsyXCIiKTsKIHNob3VsZEJlVHJ1ZSgidHJ5IHsgTnVtYmVy
KC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMSkgfSBjYXRjaCAoZSkg
eyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9Iik7CiBzaG91bGRCZSgiTnVtYmVy
KC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAxKS50b0V4cG9uZW50aWFsKCkiLCJcIjFlLTIyXCIiKTsK
IHNob3VsZEJlKCJOdW1iZXIoLjAwMDAwMDAwMDAwMDAwMDAwMDAwMTIpLnRvRXhwb25lbnRpYWwo
KSIsIlwiMS4yZS0yMVwiIik7CkBAIC0zNjQsMTEgKzM2NCwxMSBAQCBzaG91bGRCZSgiTnVtYmVy
KDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4CiBzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5
MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTQpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM1
XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50
b1ByZWNpc2lvbigxNSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ2XCIiKTsKIHNob3VsZEJlKCJO
dW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNikiLCJc
IjAuMDAwMTIzNDU2Nzg5MDEyMzQ1N1wiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTcpIiwiXCIwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY4XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy
MzQ1KS50b1ByZWNpc2lvbigxOCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwXCIiKTsKLXNo
b3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigxOSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMFwiIik7Ci1zaG91bGRCZSgiTnVtYmVy
KDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIiwiXCIwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3MDAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEy
MzQ1NjgwMDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjdcIiIpOwor
c2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDE4KSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzFcIiIpOworc2hvdWxkQmUoIk51bWJl
cigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSIsIlwiMC4w
MDAxMjM0NTY3ODkwMTIzNDU2NzEzXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEy
MzQ1NjcxMzBcIiIpOworc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEyOTdcIiIp
Owogc2hvdWxkQmUoIk51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUu
Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDEpIiwiXCIxZSs0XCIiKTsKIHNob3Vs
ZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwi
XCIxLjJlKzRcIiIpOwpAQCAtMzg5LDcgKzM4OSw3IEBAIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUu
Njc4OTAxMjM0NTY3ODkwMTIKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDE3KSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY4XCIiKTsKIHNob3Vs
ZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIs
IlwiMTIzNDUuNjc4OTAxMjM0NTY2MFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIjEyMzQ1LjY3ODkwMTIzNDU2ODAw
XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDIwKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY1MDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1i
ZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiMTIzNDUu
Njc4OTAxMjM0NTY3MDAwXCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3
ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3MDAwMFwiIik7
CiBzaG91bGRCZSgiTnVtYmVyKC0uMDAwMDAwMDAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJcIi0x
LjJlLTlcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtLjAwMDAwMDAxMjM0NSkudG9QcmVjaXNpb24o
MikiLCJcIi0xLjJlLThcIiIpOwpAQCAtNDI0LDExICs0MjQsMTEgQEAgc2hvdWxkQmUoIk51bWJl
cigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nwogc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAx
MjM1XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMTUpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDZcIiIpOwogc2hvdWxk
QmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
NikiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTdcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0wLjAwMDEy
MzQ1Njc4OTAxMjM0NTY4XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2
ODBcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigxOSkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDBcIiIpOwotc2hv
dWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lv
bigyMCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwXCIiKTsKLXNob3VsZEJlKCJOdW1i
ZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCIt
MC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwMDBcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMC4wMDAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0wLjAwMDEyMzQ1
Njc4OTAxMjM0NTY3XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1
Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzFc
IiIpOworc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50
b1ByZWNpc2lvbigxOSkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTNcIiIpOworc2hvdWxk
QmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTMwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIo
LTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCItMC4w
MDAxMjM0NTY3ODkwMTIzNDU2NzEyOTdcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKCkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1Njdc
IiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDEpIiwiXCItMWUrNFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJlKzRcIiIpOwpAQCAtNDQ5LDcg
KzQ0OSw3IEBAIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEKIHNob3Vs
ZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNyki
LCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjhcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2
NjBcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDE5KSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2ODAwXCIiKTsKLXNob3VsZEJlKCJO
dW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0x
MjM0NS42Nzg5MDEyMzQ1NjUwMDBcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2NzAw
MFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9Q
cmVjaXNpb24oMjEpIiwiXCItMTIzNDUuNjc4OTAxMjM0NTY3MDAwMFwiIik7CiBzaG91bGRCZSgi
TnVtYmVyKDApLnRvUHJlY2lzaW9uKCkiLCJcIjBcIiIpOwogc2hvdWxkQmUoIk51bWJlcigwKS50
b1ByZWNpc2lvbigxKSIsIlwiMFwiIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwkocmV2aXNpb24g
NjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9FeHBv
bmVudGlhbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIigxMjMuNDU2KS50b0V4cG9uCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjMu
NDU2KS50b0V4cG9uZW50aWFsKDIwKSIsICIxLjIzNDU2MDAwMDAwMDAwMDAzMDcwZSsyIik7CiAK
IC8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAwIHRvIDEwMCwgd2Ugb25s
eSBhbGxvdyAwIHRvIDIwIGN1cnJlbnRseQotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzLjQ1
NikudG9FeHBvbmVudGlhbCgyMSkiLCAiMS4yMzQ1NjAwMDAwMDAwMDAwMzA2OTVlKzIiKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMTAwKSIsICIxLjIz
NDU2MDAwMDAwMDAwMDAzMDY5NTQ0NjE4NDgzNjMyODAyOTYzMjU2ODM1OTM3NTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzIiKTsKK3Nob3VsZFRo
cm93KCIoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkiKTsKK3Nob3VsZFRocm93KCIoMTIzLjQ1
NikudG9FeHBvbmVudGlhbCgxMDApIik7CiBzaG91bGRUaHJvdygiKDEyMy40NTYpLnRvRXhwb25l
bnRpYWwoMTAxKSIpOwogc2hvdWxkVGhyb3coIigxMjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSIp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhl
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1i
ZXItdG9maXhlZC5qcwkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNjEsMTQgKzYx
LDE0IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGUKIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKDUpIiwgIjEyMzQuNTY3MDAiKTsKIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKDIwKSIsICIxMjM0LjU2NzAw
MDAwMDAwMDAwNzI3NTk2Iik7CiAKLS8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZh
bHVlcyAtMjAgdG8gMTAwLCB3ZSBvbmx5IGFsbG93IDAgdG8gMjAgY3VycmVudGx5Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCgyMSkiLCAiMTIzNC41NjcwMDAwMDAw
MDAwMDcyNzU5NTgiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVk
KDEwMCkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Iik7CisvLyBTcGlkZXJNb25rZXkgYWxsb3dzIHByZWNpc2lvbiB2YWx1ZXMgLTIwIHRvIDEwMCwg
dGhlIHNwZWMgb25seSBhbGxvd3MgMCB0byAyMAorc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9G
aXhlZCgyMSkiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoMTAwKSIpOwogc2hv
dWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgxMDEpIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoIigxMjM0LjU2NykudG9GaXhlZCgtMSkiLCAiMTIzMCIpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCIoMTIzNC41NjcpLnRvRml4ZWQoLTQpIiwgIjAiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiKDEyMzQuNTY3KS50b0ZpeGVkKC01KSIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
IigxMjM0LjU2NykudG9GaXhlZCgtMjApIiwgIjAiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41Njcp
LnRvRml4ZWQoLTEpIik7CitzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b0ZpeGVkKC00KSIpOwor
c2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgtNSkiKTsKK3Nob3VsZFRocm93KCIoMTIz
NC41NjcpLnRvRml4ZWQoLTIwKSIpOwogc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgt
MjEpIik7CiAKIHNob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQocG9zSW5mKSIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbnVtYmVyLXRvcHJlY2lzaW9uLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL251bWJlci10
b3ByZWNpc2lvbi5qcwkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9udW1iZXItdG9wcmVjaXNpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkg
KzI4LDkgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlYwogc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIuOSkiLCAiMS4yZSszIik7
CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9QcmVjaXNpb24oNSkiLCAiMTIz
NC42Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9QcmVjaXNpb24oMjEp
IiwgIjEyMzQuNTY3MDAwMDAwMDAwMDA3MjgiKTsKLS8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJl
Y2lzaW9uIHZhbHVlcyAxIHRvIDEwMCwgd2Ugb25seSBhbGxvdyAxIHRvIDIxIGN1cnJlbnRseQot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDIyKSIsICIxMjM0
LjU2NzAwMDAwMDAwMDAwNzI3NiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41Njcp
LnRvUHJlY2lzaW9uKDEwMCkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5
MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAiKTsKKy8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAxIHRv
IDEwMCwgd2UgaW1wbGVtZW50IHRoZSBzcGVjIGFuZCBvbmx5IGFsbG93IDEgdG8gMjEuCitzaG91
bGRUaHJvdygiKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyMikiKTsKK3Nob3VsZFRocm93KCIoMTIz
NC41NjcpLnRvUHJlY2lzaW9uKDEwMCkiKTsKIHNob3VsZFRocm93KCIoMTIzNC41NjcpLnRvUHJl
Y2lzaW9uKDEwMSkiKTsKIAogc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9QcmVjaXNpb24ocG9z
SW5mKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65321</attachid>
            <date>2010-08-24 14:09:10 -0700</date>
            <delta_ts>2010-08-24 15:41:27 -0700</delta_ts>
            <desc>Missing include</desc>
            <filename>DecimalNumber.4.patch</filename>
            <type>text/plain</type>
            <size>73790</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgIE51bWJlci50b0V4cG9uZW50aWFsL3RvRml4ZWQv
dG9QcmVjaXNpb24gYWxsIGNvbnRhaW4gYSBzcGFnaGV0dGkgb2YgZHVwbGljYXRlZAorICAgICAg
ICBjb2RlICYgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4gQWRkIGEgbmV3IERlY2ltYWxOdW1iZXIg
Y2xhc3MgdG8gZW5jYXBzdWxhdGUKKyAgICAgICAgZG91YmxlIHRvIHN0cmluZyBjb252ZXJzaW9u
LCBzaGFyZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJvdW5kaW5nICYKKyAgICAgICAgZGVjaW1h
bC1mcmFjdGlvbi9leHBvbmVudGlhbCBmb3JtYXR0aW5nLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUuZXhwOgorICAgICAgICAgICAgVXBkYXRlIGV4cG9ydHMuCisKKyAgICAgICAgKiBydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnRvVGhpc051bWJlcik6Cisg
ICAgICAgIChKU0M6OmdldEludGVnZXJBcmd1bWVudEluUmFuZ2UpOgorICAgICAgICAgICAgSGVs
cGVyIG1ldGhvZHMgdXNlZCBpbiBpbXBsZW1lbnRpbmcgdG9FeHBvbmVudGlhbC90b0ZpeGVkL3Rv
U3RyaW5nLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKToKKyAg
ICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9GaXhlZCk6CisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1RvUHJlY2lzaW9uKToKKyAgICAgICAgICAgIFJlaW1wbGVtZW50ZWQgdXNpbmcg
bmV3IERlY2ltYWxOdW1iZXIgY2xhc3MuCisgICAgICAgICAgICAKKyAgICAgICAgKiBydW50aW1l
L1VTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpudW1iZXIpOgorICAgICAgICAg
ICAgVXBkYXRlZCB0byBjYWxsIG51bWJlclRvU3RyaW5nLgorCisgICAgICAgICogd3RmL0RlY2lt
YWxOdW1iZXIuaDogQWRkZWQuCisgICAgICAgIChXVEY6Oik6CisgICAgICAgIChXVEY6OkRlY2lt
YWxOdW1iZXI6OkRlY2ltYWxOdW1iZXIpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0
b1N0cmluZ0RlY2ltYWwpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjp0b1N0cmluZ0V4
cG9uZW50aWFsKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6c2lnbik6CisgICAgICAg
IChXVEY6OkRlY2ltYWxOdW1iZXI6OmV4cG9uZW50KToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51
bWJlcjo6c2lnbmlmaWNhbmQpOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjpwcmVjaXNp
b24pOgorICAgICAgICAoV1RGOjpEZWNpbWFsTnVtYmVyOjppbml0KToKKyAgICAgICAgKFdURjo6
RGVjaW1hbE51bWJlcjo6aXNaZXJvKToKKyAgICAgICAgKFdURjo6RGVjaW1hbE51bWJlcjo6cm91
bmRUb1ByZWNpc2lvbik6CisgICAgICAgICAgICBOZXcgY2xhc3MgdG8gcGVyZm9ybSBkb3VibGUg
dG8gc3RyaW5nIGNvbnZlcnNpb24uCisgICAgICAgICAgICBIYXMgdGhyZWUgY29uc3RydWN0b3Jz
LCB3aGljaCBhbGxvdyBjb252ZXJzaW9uIHdpdGggbm8gcm91bmRpbmcsCisgICAgICAgICAgICBy
b3VuZGluZyB0byBzaWduaWZpY2FudC1maWd1cmVzLCBvciByb3VuZGluZyB0byBkZWNpbWFsLXBs
YWNlcywKKyAgICAgICAgICAgIGFuZCB0d28gbWV0aG9kcyBmb3IgZm9ybWF0dGluZyBzdHJpbmdz
LCBlaXRoZXIgdXNpbmcgZGVjaW1hbAorICAgICAgICAgICAgZnJhY3Rpb24gb3IgZXhwb25lbnRp
YWwgZW5jb2RpbmcuIEludGVybmFsIGltcGxlbWVudGF0aW9uIHVzZXMKKyAgICAgICAgICAgIHBy
ZS1yb3VuZGluZyBvZiB0aGUgdmFsdWVzIGJlZm9yZSBjYWxsaW5nIGR0b2EgcmF0aGVyIHRoYW4K
KyAgICAgICAgICAgIHJlbHlpbmcgb24gZHRvYSB0byBjb3JyZWN0bHkgcm91bmQsIHdoaWNoIGRv
ZXMgbm90IHByb2R1Y2UKKyAgICAgICAgICAgIGZ1bGx5IGFjY3VyYXRlIHJlc3VsdHMuIEhvcGVm
dWxseSB3ZSBjYW4gYWRkcmVzcyB0aGlzIGluIHRoZQorICAgICAgICAgICAgbmVhciBmdXR1cmUu
CisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OmludFBvdzEwKToKKyAg
ICAgICAgKiB3dGYvZHRvYS5oOgorICAgICAgICAgICAgaW50UG93MTAgaXMgdXNlZCBpbnRlcm5h
bGx5IGJ5IERlY2ltYWxOdW1iZXIuCisgICAgICAgICAgICAKKyAgICAgICAgKiB3dGYvdGV4dC9X
VEZTdHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjb3B5VG9TdHJpbmcpOgorICAgICAgICAoV1RG
OjpuYW5PckluZlRvU3RyaW5nKToKKyAgICAgICAgICAgIFVzZWQgaW50ZXJuYWxseSBpbiBudW1i
ZXJUb1N0cmluZyBmb3IgTmFOL0luZmluaXR5IGhhbmRsaW5nLgorICAgICAgICAoV1RGOjpudW1i
ZXJUb1N0cmluZyk6CisgICAgICAgICAgICBBZGRlZCBuZXcgbWV0aG9kIHRvIGNvbnZlcnQgZG91
YmxlcyB0byBzdHJpbmdzLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAg
ICAgICAgICBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgbnVtYmVyVG9TdHJpbmcuIFRoaXMgaXMgaGVy
ZSBiZWNhdXNlCisgICAgICAgICAgICB3ZSBzaG91bGQgc3dpdGNoIG92ZXIgdG8gdXNpbmcgdGhp
cyBmb3IgYWxsIGRvdWJsZSB0byBzdHJpbmcKKyAgICAgICAgICAgIGNvbnZlcnNpb24gaW4gV2Vi
Q29yZSAoc2VlIHNlY3Rpb24gMi40LjQuMyBvZiB0aGUgSFRNTDUgc3BlYykuCisKIDIwMTAtMDgt
MjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9u
IDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzcsNiArMzc3LDcgQEAgX19aTjNXVEYxM2N1cnJlbnRUaHJlYWRFdgogX19aTjNX
VEYxM3RyeUZhc3RDYWxsb2NFbW0KIF9fWk4zV1RGMTN0cnlGYXN0TWFsbG9jRW0KIF9fWk4zV1RG
MTRmYXN0TWFsbG9jU2l6ZUVQS3YKK19fWk4zV1RGMTRudW1iZXJUb1N0cmluZ0VkUkE5Nl90CiBf
X1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNHdhaXRFUk5TXzVNdXRleEUKIF9fWk4zV1RGMTVUaHJl
YWRDb25kaXRpb242c2lnbmFsRXYKIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb245YnJvYWRjYXN0
RXYKQEAgLTQxMSw3ICs0MTIsNiBAQCBfX1pOM1dURjIzZGF5SW5Nb250aEZyb21EYXlJblllYXJF
aWIKIF9fWk4zV1RGMjN3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkVqUFB2CiBfX1pOM1dURjI3cmVs
ZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5RXYKIF9fWk4zV1RGMjhzZXRNYWluVGhyZWFkQ2FsbGJh
Y2tzUGF1c2VkRWIKLV9fWk4zV1RGMzJkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdEVk
UGNQagogX19aTjNXVEYzNmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CiBf
X1pOM1dURjM3cGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVyc0VQS2MKIF9fWk4z
V1RGMzh1bmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEV2CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDY1NjQyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIw
MCw3IEBACiAJCTg2MjZCRUNGMTE5MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjZCRUNFMTE5
MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCAqLzsgfTsKIAkJODYyN0U1RUIxMUYx
MjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjdFNUU5MTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5jcHAgKi87IH07CiAJCTg2MjdFNUVDMTFGMTI4MTkwMEEzMTNCNSAvKiBQYWdl
QWxsb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyN0U1RUExMUYxMjgxOTAwQTMxM0I1IC8qIFBhZ2VBbGxvY2F0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODYyQUY0QjYxMjIzOUM3
QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkFGNEI1MTIyMzlDN0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVt
YmVyLmggKi87IH07CiAJCTg2M0IyM0UwMEZDNjExODkwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAvKiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjU2NTc0MjEx
NUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MDExNUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5j
cHAgKi87IH07CiAJCTg2NTY1NzQzMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjU2NTc0MTExNUJFM0RB
MDAyOTFGNDAgLyogQ1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03ODUsNiArNzg2LDcgQEAKIAkJODYyNkJFQ0UxMTkyOEUzOTAwNzgy
RkFCIC8qIFN0cmluZ1N0YXRpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3RyaW5nU3RhdGljcy5jcHA7IHBhdGggPSB0ZXh0L1N0cmluZ1N0YXRpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVFOTExRjEyODE5MDBBMzEzQjUgLyog
UGFnZUFsbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZUFsbG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjI3RTVF
QTExRjEyODE5MDBBMzEzQjUgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODYyQUY0QjUxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbE51bWJlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjU2NTc0MDExNUJF
M0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBDU3RyaW5nLmNwcDsgcGF0aCA9IHRleHQvQ1N0cmluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2NTY1NzQxMTE1QkUzREEwMDI5MUY0MCAvKiBDU3RyaW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENTdHJpbmcuaDsgcGF0aCA9IHRleHQv
Q1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOCw2ICsxNDQwLDcg
QEAKIAkJCQkxODBCOUFGMDBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuaCAqLywKIAkJ
CQk0MTM1OUNGNDBGREQ4OUNCMDAyMDYxODAgLyogRGF0ZU1hdGguY3BwICovLAogCQkJCTQxMzU5
Q0Y1MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5oICovLAorCQkJCTg2MkFGNEI1MTIyMzlD
N0IwMDI0RTVCOCAvKiBEZWNpbWFsTnVtYmVyLmggKi8sCiAJCQkJNTE4NjExMUQwQ0M4MjQ4MzAw
ODE0MTJCIC8qIERlcXVlLmggKi8sCiAJCQkJOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERp
c2FsbG93Q1R5cGUuaCAqLywKIAkJCQk2NTFGNjQxMjAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5j
cHAgKi8sCkBAIC0yMjMzLDYgKzIyMzYsNyBAQAogCQkJCURERTgyQUQ4MTIwOUQ5NTUwMDVDMTc1
NiAvKiBHQ0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGMzg4NTkxMjExMzBDQTAwN0E3
Q0UzIC8qIEF0b21pY1N0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QjZEQTAyMTIx
MzJCOUEwMDBEMzE2RiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODYyQUY0QjYxMjIzOUM3QjAwMjRFNUI4IC8qIERlY2ltYWxOdW1iZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjMyNiw2ICsyMzMwLDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJY29t
cGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0g
RW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25z
ID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm90b3R5cGVGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKLSNpbmNsdWRlICJkdG9hLmgiCiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02Niw3NSAr
NjYsMTQwIEBAIE51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4ZWNTdGEKIAogLy8g
RUNNQSAxNS43LjQuMiAtIDE1LjcuNC43CiAKLXN0YXRpYyBVU3RyaW5nIGludGVnZXJQYXJ0Tm9F
eHAoZG91YmxlIGQpCitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRvVGhpc051bWJlcihKU1Zh
bHVlIHRoaXNWYWx1ZSwgZG91YmxlICZ4KQogewotICAgIGludCBkZWNpbWFsUG9pbnQ7Ci0gICAg
aW50IHNpZ247Ci0gICAgY2hhciByZXN1bHRbODBdOwotICAgIFdURjo6ZHRvYShyZXN1bHQsIGQs
IDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCBOVUxMKTsKLSAgICBib29sIHJlc3VsdElzSW5mT3JO
YW4gPSAoZGVjaW1hbFBvaW50ID09IDk5OTkpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4o
cmVzdWx0KTsKLQotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVu
ZChzaWduID8gIi0iIDogIiIpOwotICAgIGlmIChyZXN1bHRJc0luZk9yTmFuKQotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgoY29uc3QgY2hhciopcmVzdWx0KTsKLSAgICBlbHNlIGlmIChkZWNpbWFs
UG9pbnQgPD0gMCkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjAiKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZihkZWNpbWFsUG9pbnQgKyAxKTsKLQotICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8aW50PihsZW5ndGgpIDw9IGRlY2ltYWxQb2ludCkgewotICAgICAg
ICAgICAgQVNTRVJUKGRlY2ltYWxQb2ludCA8IDEwMjQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1
Zi5kYXRhKCksIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIG1lbXNldChidWYuZGF0YSgp
ICsgbGVuZ3RoLCAnMCcsIGRlY2ltYWxQb2ludCAtIGxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgc3RybmNweShidWYuZGF0YSgpLCByZXN1bHQsIGRlY2ltYWxQb2ludCk7Ci0g
ICAgICAgIGJ1ZltkZWNpbWFsUG9pbnRdID0gJ1wwJzsKKyAgICBKU1ZhbHVlIHYgPSB0aGlzVmFs
dWUuZ2V0SlNOdW1iZXIoKTsKKyAgICBpZiAoVU5MSUtFTFkoIXYpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgeCA9IHYudW5jaGVja2VkR2V0TnVtYmVyKCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgZ2V0SW50ZWdlckFyZ3VtZW50SW5SYW5n
ZShFeGVjU3RhdGUqIGV4ZWMsIGludCBsb3csIGludCBoaWdoLCBpbnQmIHJlc3VsdCwgYm9vbCYg
aXNVbmRlZmluZWQpCit7CisgICAgcmVzdWx0ID0gMDsKKyAgICBpc1VuZGVmaW5lZCA9IGZhbHNl
OwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKChjb25zdCBjaGFyKikoYnVmLmRhdGEoKSkpOwor
ICAgIEpTVmFsdWUgYXJndW1lbnQwID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgaWYgKGFyZ3Vt
ZW50MC5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIGlzVW5kZWZpbmVkID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTsKKyAg
ICBkb3VibGUgYXNEb3VibGUgPSBhcmd1bWVudDAudG9JbnRlZ2VyKGV4ZWMpOworICAgIGlmIChh
c0RvdWJsZSA8IGxvdyB8fCBhc0RvdWJsZSA+IGhpZ2gpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludD4oYXNEb3VibGUpOworICAgIHJldHVybiB0
cnVlOwogfQogCi1zdGF0aWMgVVN0cmluZyBjaGFyU2VxdWVuY2UoY2hhciBjLCBpbnQgY291bnQp
CisvLyB0b0V4cG9uZW50aWFsIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3RyaW5nLCBhbHdheXMg
Zm9ybWF0dGluZyBhcyBhbiBleHBvZW50aWFsLgorLy8gVGhpcyBtZXRob2QgdGFrZXMgYW4gb3B0
aW9uYWwgYXJndW1lbnQgc3BlY2lmeWluZyBhIG51bWJlciBvZiAqZGVjaW1hbCBwbGFjZXMqCisv
LyB0byByb3VuZCB0aGUgc2lnbmlmaWNhbmQgdG8gKG9yLCBwdXQgYW5vdGhlciB3YXksIHRoaXMg
bWV0aG9kIG9wdGlvbmFsbHkgcm91bmRzCisvLyB0byBhcmd1bWVudC1wbHVzLW9uZSBzaWduaWZp
Y2FudCBmaWd1cmVzKS4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9FeHBvbmVudGlhbChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVmVjdG9yPGNoYXIsIDIw
NDg+IGJ1Zihjb3VudCArIDEsIGMpOwotICAgIGJ1Zltjb3VudF0gPSAnXDAnOworICAgIC8vIEdl
dCB4ICh0aGUgZG91YmxlIHZhbHVlIG9mIHRoaXMsIHdoaWNoIHNob3VsZCBiZSBhIE51bWJlciku
CisgICAgZG91YmxlIHg7CisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpLCB4KSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBy
ZXR1cm4gVVN0cmluZyhidWYuZGF0YSgpKTsKKyAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKKyAg
ICBpbnQgZGVjaW1hbFBsYWNlc0luRXhwb25lbnQ7CisgICAgYm9vbCBpc1VuZGVmaW5lZDsKKyAg
ICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhlYywgMCwgMjAsIGRlY2ltYWxQbGFj
ZXNJbkV4cG9uZW50LCBpc1VuZGVmaW5lZCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAidG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11
c3QgYmUgYmV0d2VlbiAwIGFuZCAyMCIpKTsKKworICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmlu
aXR5LgorICAgIGlmIChpc25hbih4KSB8fCBpc2luZih4KSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpKTsKKworICAgIC8v
IFJvdW5kIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgdW5kZWZpbmVkLCBhbHdheXMgZm9ybWF0IGFz
IGV4cG9uZW50aWFsLgorICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSBpc1VuZGVmaW5lZAorICAgICAgICA/IERlY2ltYWxOdW1iZXIoeCkudG9T
dHJpbmdFeHBvbmVudGlhbChidWZmZXIpCisgICAgICAgIDogRGVjaW1hbE51bWJlcih4LCBSb3Vu
ZGluZ1NpZ25pZmljYW50RmlndXJlcywgZGVjaW1hbFBsYWNlc0luRXhwb25lbnQgKyAxKS50b1N0
cmluZ0V4cG9uZW50aWFsKGJ1ZmZlcik7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKSk7CiB9CiAKLXN0YXRpYyBkb3Vi
bGUgaW50UG93MTAoaW50IGUpCisvLyB0b0ZpeGVkIGNvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3Ry
aW5nLCBhbHdheXMgZm9ybWF0dGluZyBhcyBhbiBhIGRlY2ltYWwgZnJhY3Rpb24uCisvLyBUaGlz
IG1ldGhvZCB0YWtlcyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIGRlY2ltYWwg
cGxhY2VzIHRvIHJvdW5kIHRoZQorLy8gc2lnbmlmaWNhbmQgdG8uIEhvd2V2ZXIgd2hlbiBjb252
ZXJ0aW5nIGxhcmdlIHZhbHVlcyAoMWUrMjEgYW5kIGFib3ZlKSB0aGlzCisvLyBtZXRob2Qgd2ls
bCBpbnN0ZWFkIGZhbGxiYWNrIHRvIGNhbGxpbmcgVG9TdHJpbmcuIAorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlICJleHBvbmVudGlhdGlvbiBieSBzcXVhcmlu
ZyIgYWxnb3JpdGhtIGFuZAotICAgIC8vIGxvbmcgZG91YmxlIHRvIHF1aWNrbHkgYW5kIHByZWNp
c2VseSBjYWxjdWxhdGUgaW50ZWdlciBwb3dlcnMgb2YgMTAuMC4KKyAgICAvLyBHZXQgeCAodGhl
IGRvdWJsZSB2YWx1ZSBvZiB0aGlzLCB3aGljaCBzaG91bGQgYmUgYSBOdW1iZXIpLgorICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdiA9
IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOworICAgIGlmICghdikKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJl
cigpOwogCi0gICAgLy8gVGhpcyBpcyBhIGhhbmR5IHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJv
YmxlbS80NDk0NzU2PgorICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIAorICAgIGludCBkZWNpbWFs
UGxhY2VzOworICAgIGJvb2wgaXNVbmRlZmluZWQ7IC8vIFRoaXMgaXMgaWdub3JlZDsgdW5kZWZp
bmVkIHRyZWF0ZWQgYXMgMC4KKyAgICBpZiAoIWdldEludGVnZXJBcmd1bWVudEluUmFuZ2UoZXhl
YywgMCwgMjAsIGRlY2ltYWxQbGFjZXMsIGlzVW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0ZpeGVkKCkgYXJndW1l
bnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwIikpOworCisgICAgLy8gMTUuNy40LjUuNyBzdGF0
ZXMgIklmIHggPj0gMTBeMjEsIHRoZW4gbGV0IG0gPSBUb1N0cmluZyh4KSIKKyAgICAvLyBUaGlz
IGFsc28gY292ZXJzIEluaW5pdHksIGFuZCBzdHJ1Y3R1cmUgdGhlIGNoZWNrIHNvIHRoYXQgTmFO
CisgICAgLy8gdmFsdWVzIGFyZSBhbHNvIGhhbmRsZWQgYnkgbnVtYmVyVG9TdHJpbmcKKyAgICBp
ZiAoIShmYWJzKHgpIDwgMWUrMjEpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJlcih4KSkpOwogCi0gICAgaWYgKGUgPT0gMCkKLSAg
ICAgICAgcmV0dXJuIDEuMDsKKyAgICAvLyBUaGUgY2hlY2sgYWJvdmUgd2lsbCByZXR1cm4gZmFs
c2UgZm9yIE5hTiBvciBJbmZpbml0eSwgdGhlc2Ugd2lsbCBiZQorICAgIC8vIGhhbmRsZWQgYnkg
bnVtYmVyVG9TdHJpbmcuCisgICAgQVNTRVJUKCFpc25hbih4KSAmJiAhaXNpbmYoeCkpOworCisg
ICAgLy8gQ29udmVydCB0byBkZWNpbWFsIHdpdGggcm91bmRpbmcsIGFuZCBmb3JtYXQgYXMgZGVj
aW1hbC4KKyAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0gRGVjaW1hbE51bWJlcih4LCBSb3VuZGluZ0RlY2ltYWxQbGFjZXMsIGRlY2ltYWxQbGFj
ZXMpLnRvU3RyaW5nRGVjaW1hbChidWZmZXIpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxlbmd0aCkpKTsKK30KKworLy8gdG9QcmVj
aXNpb24gY29udmVydHMgYSBudW1iZXIgdG8gYSBzdHJpbmcsIHRha2VpbmcgYW4gYXJndW1lbnQg
c3BlY2lmeWluZyBhCisvLyBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZmlndXJlcyB0byByb3VuZCB0
aGUgc2lnbmlmaWNhbmQgdG8uIEZvciBwb3NpdGl2ZQorLy8gZXhwb25lbnQsIGFsbCB2YWx1ZXMg
dGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgdXNpbmcgYSBkZWNpbWFsIGZyYWN0aW9uIHdpbGwKKy8v
IGJlLCBlLmcuIHdoZW4gcm91bmRpbmcgdG8gMyBzLmYuIGFueSB2YWx1ZSB1cCB0byA5OTkgd2ls
bCBiZSBmb3JtYXRlZCBhcyBhCisvLyBkZWNpbWFsLCB3aGlsc3QgMTAwMCBpcyBjb252ZXJ0ZWQg
dG8gdGhlIGV4cG9uZW50aWFsIHJlcHJlc2VudGF0aW9uIDEuMDBlKzMuCisvLyBGb3IgbmVnYXRp
dmUgZXhwb25lbnRzIHZhbHVlcyA+PSAxZS02IGFyZSBmb3JtYXRlZCBhcyBkZWNpbWFsIGZyYWN0
aW9ucywKKy8vIHdpdGggc21hbGxlciB2YWx1ZXMgY29udmVydGVkIHRvIGV4cG9uZW50aWFsIHJl
cHJlc2VudGF0aW9uLgorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb1ByZWNpc2lvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgLy8gR2V0IHggKHRoZSBkb3Vi
bGUgdmFsdWUgb2YgdGhpcywgd2hpY2ggc2hvdWxkIGJlIGEgTnVtYmVyKS4KKyAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHYgPSB0aGlz
VmFsdWUuZ2V0SlNOdW1iZXIoKTsKKyAgICBpZiAoIXYpCisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgIGRvdWJsZSB4ID0gdi51bmNoZWNrZWRHZXROdW1iZXIoKTsK
IAotICAgIGJvb2wgbmVnYXRpdmUgPSBlIDwgMDsKLSAgICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2
ZSA/IC1lIDogZTsKLQotICAgIGxvbmcgZG91YmxlIHJlc3VsdCA9IDEwLjA7Ci0gICAgYm9vbCBm
b3VuZE9uZSA9IGZhbHNlOwotICAgIGZvciAoaW50IGJpdCA9IDMxOyBiaXQgPj0gMDsgYml0LS0p
IHsKLSAgICAgICAgaWYgKCFmb3VuZE9uZSkgewotICAgICAgICAgICAgaWYgKChleHAgPj4gYml0
KSAmIDEpCi0gICAgICAgICAgICAgICAgZm91bmRPbmUgPSB0cnVlOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogcmVzdWx0OwotICAgICAgICAgICAgaWYg
KChleHAgPj4gYml0KSAmIDEpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMTAu
MDsKLSAgICAgICAgfQotICAgIH0KKyAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKKyAgICBpbnQg
c2lnbmlmaWNhbnRGaWd1cmVzOworICAgIGJvb2wgaXNVbmRlZmluZWQ7CisgICAgaWYgKCFnZXRJ
bnRlZ2VyQXJndW1lbnRJblJhbmdlKGV4ZWMsIDEsIDIxLCBzaWduaWZpY2FudEZpZ3VyZXMsIGlz
VW5kZWZpbmVkKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5n
ZUVycm9yKGV4ZWMsICJ0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFu
ZCAyMSIpKTsKKworICAgIC8vIFRvIHByZWNpc2lvbiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudCBp
cyB0cmVhdGVkIGFzIFRvU3RyaW5nLgorICAgIGlmIChpc1VuZGVmaW5lZCkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3RyaW5nOjpudW1iZXIoeCkpKTsK
IAotICAgIGlmIChuZWdhdGl2ZSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
MS4wIC8gcmVzdWx0KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyZXN1bHQpOwor
ICAgIC8vIEhhbmRsZSBOYU4gYW5kIEluZmluaXR5LgorICAgIGlmIChpc25hbih4KSB8fCBpc2lu
Zih4KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBVU3Ry
aW5nOjpudW1iZXIoeCkpKTsKKworICAgIC8vIENvbnZlcnQgdG8gZGVjaW1hbCB3aXRoIHJvdW5k
aW5nLgorICAgIERlY2ltYWxOdW1iZXIgbnVtYmVyKHgsIFJvdW5kaW5nU2lnbmlmaWNhbnRGaWd1
cmVzLCBzaWduaWZpY2FudEZpZ3VyZXMpOworICAgIC8vIElmIG51bWJlciBpcyBpbiB0aGUgcmFu
Z2UgMWUtNiA8PSB4IDwgcG93KDEwLCBzaWduaWZpY2FudEZpZ3VyZXMpIHRoZW4gZm9ybWF0Cisg
ICAgLy8gYXMgZGVjaW1hbC4gT3RoZXJ3aXNlLCBmb3JtYXQgdGhlIG51bWJlciBhcyBhbiBleHBv
bmVudGlhbC4gIERlY2ltYWwgZm9ybWF0CisgICAgLy8gZGVtYW5kcyBhIG1pbmltdW0gb2YgKGV4
cG9uZW50ICsgMSkgZGlnaXRzIHRvIHJlcHJlc2VudCBhIG51bWJlciwgZm9yIGV4YW1wbGUKKyAg
ICAvLyAxMjM0ICgxLjIzNGUrMykgcmVxdWlyZXMgNCBkaWdpdHMuIChTZWUgRUNNQS0yNjIgMTUu
Ny40LjcuMTAuYykKKyAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gbnVtYmVyLmV4cG9uZW50KCkgPj0gLTYgJiYgbnVtYmVyLmV4cG9uZW50KCkg
PCBzaWduaWZpY2FudEZpZ3VyZXMKKyAgICAgICAgPyBudW1iZXIudG9TdHJpbmdEZWNpbWFsKGJ1
ZmZlcikKKyAgICAgICAgOiBudW1iZXIudG9TdHJpbmdFeHBvbmVudGlhbChidWZmZXIpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgVVN0cmluZyhidWZmZXIsIGxl
bmd0aCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNDMsMjM3ICszMDgsNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh2KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1
bmNUb0ZpeGVkKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNOdW1i
ZXIoKTsKLSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OwotCi0gICAgSlNWYWx1ZSBmcmFjdGlvbkRpZ2l0cyA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAg
IGRvdWJsZSBkZiA9IGZyYWN0aW9uRGlnaXRzLnRvSW50ZWdlcihleGVjKTsKLSAgICBpZiAoIShk
ZiA+PSAwICYmIGRmIDw9IDIwKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVSYW5nZUVycm9yKGV4ZWMsICJ0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUg
YmV0d2VlbiAwIGFuZCAyMCIpKTsKLSAgICBpbnQgZiA9IHN0YXRpY19jYXN0PGludD4oZGYpOwot
Ci0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotICAgIGlmIChpc25hbih4
KSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgIk5hTiIpKTsKLQotICAgIFVTdHJpbmcgczsKLSAgICBpZiAoeCA8IDApIHsKLSAgICAgICAg
cyA9ICItIjsKLSAgICAgICAgeCA9IC14OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHMgPSAiIjsK
LSAgICAgICAgaWYgKHggPT0gLTAuMCkKLSAgICAgICAgICAgIHggPSAwOwotICAgIH0KLQotICAg
IGlmICh4ID49IHBvdygxMC4wLCAyMS4wKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIFVTdHJpbmc6Om51bWJlcih4KSkpKTsKLQot
ICAgIGNvbnN0IGRvdWJsZSB0ZW5Ub1RoZUYgPSBwb3coMTAuMCwgZik7Ci0gICAgZG91YmxlIG4g
PSBmbG9vcih4ICogdGVuVG9UaGVGKTsKLSAgICBpZiAoZmFicyhuIC8gdGVuVG9UaGVGIC0geCkg
Pj0gZmFicygobiArIDEpIC8gdGVuVG9UaGVGIC0geCkpCi0gICAgICAgIG4rKzsKLQotICAgIFVT
dHJpbmcgbSA9IGludGVnZXJQYXJ0Tm9FeHAobik7Ci0KLSAgICBpbnQgayA9IG0ubGVuZ3RoKCk7
Ci0gICAgaWYgKGsgPD0gZikgewotICAgICAgICBTdHJpbmdCdWlsZGVyIHo7Ci0gICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgZiArIDEgLSBrOyBpKyspCi0gICAgICAgICAgICB6LmFwcGVuZCgn
MCcpOwotICAgICAgICB6LmFwcGVuZChtKTsKLSAgICAgICAgbSA9IHouYnVpbGQoKTsKLSAgICAg
ICAgayA9IGYgKyAxOwotICAgICAgICBBU1NFUlQoayA9PSBzdGF0aWNfY2FzdDxpbnQ+KG0ubGVu
Z3RoKCkpKTsKLSAgICB9Ci0gICAgaW50IGtNaW51c2YgPSBrIC0gZjsKLQotICAgIGlmIChrTWlu
dXNmIDwgc3RhdGljX2Nhc3Q8aW50PihtLmxlbmd0aCgpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIG0uc3Vic3RyaW5nU2hhcmlu
Z0ltcGwoMCwga01pbnVzZiksICIuIiwgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbChrTWludXNmKSkp
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VTdHJpbmco
cywgbS5zdWJzdHJpbmdTaGFyaW5nSW1wbCgwLCBrTWludXNmKSkpKTsKLX0KLQotc3RhdGljIHZv
aWQgZnJhY3Rpb25hbFBhcnRUb1N0cmluZyhjaGFyKiBidWYsIGludCYgaSwgY29uc3QgY2hhciog
cmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBpbnQgZnJhY3Rpb25hbERpZ2l0cykKLXsKLSAgICBp
ZiAoZnJhY3Rpb25hbERpZ2l0cyA8PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgZkRp
Z2l0c0luUmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50PihyZXN1bHRMZW5ndGgpIC0gMTsKLSAgICBi
dWZbaSsrXSA9ICcuJzsKLSAgICBpZiAoZkRpZ2l0c0luUmVzdWx0ID4gMCkgewotICAgICAgICBp
ZiAoZnJhY3Rpb25hbERpZ2l0cyA8IGZEaWdpdHNJblJlc3VsdCkgewotICAgICAgICAgICAgc3Ry
bmNweShidWYgKyBpLCByZXN1bHQgKyAxLCBmcmFjdGlvbmFsRGlnaXRzKTsKLSAgICAgICAgICAg
IGkgKz0gZnJhY3Rpb25hbERpZ2l0czsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFT
U0VSVChpICsgcmVzdWx0TGVuZ3RoIC0gMSA8IDgwKTsKLSAgICAgICAgICAgIG1lbWNweShidWYg
KyBpLCByZXN1bHQgKyAxLCByZXN1bHRMZW5ndGggLSAxKTsKLSAgICAgICAgICAgIGkgKz0gc3Rh
dGljX2Nhc3Q8aW50PihyZXN1bHRMZW5ndGgpIC0gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGZvciAoaW50IGogPSAwOyBqIDwgZnJhY3Rpb25hbERpZ2l0cyAtIGZEaWdpdHNJblJlc3VsdDsg
aisrKQotICAgICAgICBidWZbaSsrXSA9ICcwJzsKLX0KLQotc3RhdGljIHZvaWQgZXhwb25lbnRp
YWxQYXJ0VG9TdHJpbmcoY2hhciogYnVmLCBpbnQmIGksIGludCBkZWNpbWFsUG9pbnQpCi17Ci0g
ICAgYnVmW2krK10gPSAnZSc7Ci0gICAgLy8gZGVjaW1hbFBvaW50IGNhbid0IGJlIG1vcmUgdGhh
biAzIGRpZ2l0cyBkZWNpbWFsIGdpdmVuIHRoZQotICAgIC8vIG5hdHVyZSBvZiBmbG9hdCByZXBy
ZXNlbnRhdGlvbgotICAgIGludCBleHBvbmVudGlhbCA9IGRlY2ltYWxQb2ludCAtIDE7Ci0gICAg
YnVmW2krK10gPSAoZXhwb25lbnRpYWwgPj0gMCkgPyAnKycgOiAnLSc7Ci0gICAgaWYgKGV4cG9u
ZW50aWFsIDwgMCkKLSAgICAgICAgZXhwb25lbnRpYWwgKj0gLTE7Ci0gICAgaWYgKGV4cG9uZW50
aWFsID49IDEwMCkKLSAgICAgICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBl
eHBvbmVudGlhbCAvIDEwMCk7Ci0gICAgaWYgKGV4cG9uZW50aWFsID49IDEwKQotICAgICAgICBi
dWZbaSsrXSA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIChleHBvbmVudGlhbCAlIDEwMCkgLyAx
MCk7Ci0gICAgYnVmW2krK10gPSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBleHBvbmVudGlhbCAl
IDEwKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNU
b0V4cG9uZW50aWFsKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHYgPSB0aGlzVmFsdWUuZ2V0SlNO
dW1iZXIoKTsKLSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwotCi0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotCi0gICAgaWYg
KGlzbmFuKHgpIHx8IGlzaW5mKHgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIFVTdHJpbmc6Om51bWJlcih4KSkpOwotCi0gICAgSlNWYWx1ZSBmcmFjdGlv
bmFsRGlnaXRzVmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBkb3VibGUgZGYgPSBmcmFj
dGlvbmFsRGlnaXRzVmFsdWUudG9JbnRlZ2VyKGV4ZWMpOwotICAgIGlmICghKGRmID49IDAgJiYg
ZGYgPD0gMjApKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJhbmdl
RXJyb3IoZXhlYywgInRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdlZW4gMCBhbmQg
MjAiKSk7Ci0gICAgaW50IGZyYWN0aW9uYWxEaWdpdHMgPSBzdGF0aWNfY2FzdDxpbnQ+KGRmKTsK
LSAgICBib29sIGluY2x1ZGVBbGxEaWdpdHMgPSBmcmFjdGlvbmFsRGlnaXRzVmFsdWUuaXNVbmRl
ZmluZWQoKTsKLQotICAgIGludCBkZWNpbWFsQWRqdXN0ID0gMDsKLSAgICBpZiAoeCAmJiAhaW5j
bHVkZUFsbERpZ2l0cykgewotICAgICAgICBkb3VibGUgbG9neCA9IGZsb29yKGxvZzEwKGZhYnMo
eCkpKTsKLSAgICAgICAgeCAvPSBwb3coMTAuMCwgbG9neCk7Ci0gICAgICAgIGNvbnN0IGRvdWJs
ZSB0ZW5Ub1RoZUYgPSBwb3coMTAuMCwgZnJhY3Rpb25hbERpZ2l0cyk7Ci0gICAgICAgIGRvdWJs
ZSBmeCA9IGZsb29yKHggKiB0ZW5Ub1RoZUYpIC8gdGVuVG9UaGVGOwotICAgICAgICBkb3VibGUg
Y3ggPSBjZWlsKHggKiB0ZW5Ub1RoZUYpIC8gdGVuVG9UaGVGOwotCi0gICAgICAgIGlmIChmYWJz
KGZ4IC0geCkgPCBmYWJzKGN4IC0geCkpCi0gICAgICAgICAgICB4ID0gZng7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHggPSBjeDsKLQotICAgICAgICBkZWNpbWFsQWRqdXN0ID0gc3RhdGlj
X2Nhc3Q8aW50Pihsb2d4KTsKLSAgICB9Ci0KLSAgICBpZiAoaXNuYW4oeCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJOYU4iKSk7Ci0K
LSAgICBpZiAoeCA9PSAtMC4wKSAvLyAoLTAuMCkudG9FeHBvbmVudGlhbCgpIHNob3VsZCBwcmlu
dCBhcyAwIGluc3RlYWQgb2YgLTAKLSAgICAgICAgeCA9IDA7Ci0KLSAgICBpbnQgZGVjaW1hbFBv
aW50OwotICAgIGludCBzaWduOwotICAgIGNoYXIgcmVzdWx0WzgwXTsKLSAgICBXVEY6OmR0b2Eo
cmVzdWx0LCB4LCAwLCAmZGVjaW1hbFBvaW50LCAmc2lnbiwgTlVMTCk7Ci0gICAgc2l6ZV90IHJl
c3VsdExlbmd0aCA9IHN0cmxlbihyZXN1bHQpOwotICAgIGRlY2ltYWxQb2ludCArPSBkZWNpbWFs
QWRqdXN0OwotCi0gICAgaW50IGkgPSAwOwotICAgIGNoYXIgYnVmWzgwXTsgLy8gZGlnaXQgKyAn
LicgKyBmcmFjdGlvbkRpZ2l0cyAobWF4IDIwKSArICdlJyArIHNpZ24gKyBleHBvbmVudCAobWF4
PykKLSAgICBpZiAoc2lnbikKLSAgICAgICAgYnVmW2krK10gPSAnLSc7Ci0KLSAgICAvLyA/IDk5
OTkgaXMgdGhlIG1hZ2ljYWwgInJlc3VsdCBpcyBJbmYgb3IgTmFOIiB2YWx1ZS4gIHdoYXQncyA5
OTk/PwotICAgIGlmIChkZWNpbWFsUG9pbnQgPT0gOTk5KSB7Ci0gICAgICAgIEFTU0VSVChpICsg
cmVzdWx0TGVuZ3RoIDwgODApOwotICAgICAgICBtZW1jcHkoYnVmICsgaSwgcmVzdWx0LCByZXN1
bHRMZW5ndGgpOwotICAgICAgICBidWZbaSArIHJlc3VsdExlbmd0aF0gPSAnXDAnOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGJ1ZltpKytdID0gcmVzdWx0WzBdOwotCi0gICAgICAgIGlmIChpbmNs
dWRlQWxsRGlnaXRzKQotICAgICAgICAgICAgZnJhY3Rpb25hbERpZ2l0cyA9IHN0YXRpY19jYXN0
PGludD4ocmVzdWx0TGVuZ3RoKSAtIDE7Ci0KLSAgICAgICAgZnJhY3Rpb25hbFBhcnRUb1N0cmlu
ZyhidWYsIGksIHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBmcmFjdGlvbmFsRGlnaXRzKTsKLSAgICAg
ICAgZXhwb25lbnRpYWxQYXJ0VG9TdHJpbmcoYnVmLCBpLCBkZWNpbWFsUG9pbnQpOwotICAgICAg
ICBidWZbaSsrXSA9ICdcMCc7Ci0gICAgfQotICAgIEFTU0VSVChpIDw9IDgwKTsKLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVmKSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRl
KiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OwotICAgIEpTVmFsdWUgdiA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOwotICAgIGlmICghdikK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0KLSAgICBkb3VibGUgZG91
YmxlUHJlY2lzaW9uID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnRlZ2VyUHJlc2VydmVOYU4oZXhl
Yyk7Ci0gICAgZG91YmxlIHggPSB2LnVuY2hlY2tlZEdldE51bWJlcigpOwotICAgIGlmIChleGVj
LT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpIHx8IGlzbmFuKHgpIHx8IGlzaW5mKHgpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIHYudG9TdHJpbmcoZXhl
YykpKTsKLQotICAgIFVTdHJpbmcgczsKLSAgICBpZiAoeCA8IDApIHsKLSAgICAgICAgcyA9ICIt
IjsKLSAgICAgICAgeCA9IC14OwotICAgIH0gZWxzZQotICAgICAgICBzID0gIiI7Ci0KLSAgICBp
ZiAoIShkb3VibGVQcmVjaXNpb24gPj0gMSAmJiBkb3VibGVQcmVjaXNpb24gPD0gMjEpKSAvLyB0
cnVlIGZvciBOYU4KLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSYW5n
ZUVycm9yKGV4ZWMsICJ0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAxIGFu
ZCAyMSIpKTsKLSAgICBpbnQgcHJlY2lzaW9uID0gc3RhdGljX2Nhc3Q8aW50Pihkb3VibGVQcmVj
aXNpb24pOwotCi0gICAgaW50IGUgPSAwOwotICAgIFVTdHJpbmcgbTsKLSAgICBpZiAoeCkgewot
ICAgICAgICBlID0gc3RhdGljX2Nhc3Q8aW50Pihsb2cxMCh4KSk7Ci0gICAgICAgIGRvdWJsZSB0
ZW5zID0gaW50UG93MTAoZSAtIHByZWNpc2lvbiArIDEpOwotICAgICAgICBkb3VibGUgbiA9IGZs
b29yKHggLyB0ZW5zKTsKLSAgICAgICAgaWYgKG4gPCBpbnRQb3cxMChwcmVjaXNpb24gLSAxKSkg
ewotICAgICAgICAgICAgZSA9IGUgLSAxOwotICAgICAgICAgICAgdGVucyA9IGludFBvdzEwKGUg
LSBwcmVjaXNpb24gKyAxKTsKLSAgICAgICAgICAgIG4gPSBmbG9vcih4IC8gdGVucyk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoZmFicygobiArIDEuMCkgKiB0ZW5zIC0geCkgPD0gZmFicyhu
ICogdGVucyAtIHgpKQotICAgICAgICAgICAgKytuOwotICAgICAgICAvLyBtYWludGFpbiBuIDwg
MTBeKHByZWNpc2lvbikKLSAgICAgICAgaWYgKG4gPj0gaW50UG93MTAocHJlY2lzaW9uKSkgewot
ICAgICAgICAgICAgbiAvPSAxMC4wOwotICAgICAgICAgICAgZSArPSAxOwotICAgICAgICB9Ci0g
ICAgICAgIEFTU0VSVChpbnRQb3cxMChwcmVjaXNpb24gLSAxKSA8PSBuKTsKLSAgICAgICAgQVNT
RVJUKG4gPCBpbnRQb3cxMChwcmVjaXNpb24pKTsKLQotICAgICAgICBtID0gaW50ZWdlclBhcnRO
b0V4cChuKTsKLSAgICAgICAgaWYgKGUgPCAtNiB8fCBlID49IHByZWNpc2lvbikgewotICAgICAg
ICAgICAgaWYgKG0ubGVuZ3RoKCkgPiAxKQotICAgICAgICAgICAgICAgIG0gPSBtYWtlU3RyaW5n
KG0uc3Vic3RyaW5nU2hhcmluZ0ltcGwoMCwgMSksICIuIiwgbS5zdWJzdHJpbmdTaGFyaW5nSW1w
bCgxKSk7Ci0gICAgICAgICAgICBpZiAoZSA+PSAwKQotICAgICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBzLCBtLCAiZSsiLCBV
U3RyaW5nOjpudW1iZXIoZSkpKTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBzLCBtLCAiZS0iLCBVU3RyaW5nOjpudW1iZXIo
LWUpKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBtID0gY2hhclNlcXVlbmNl
KCcwJywgcHJlY2lzaW9uKTsKLSAgICAgICAgZSA9IDA7Ci0gICAgfQotCi0gICAgaWYgKGUgPT0g
cHJlY2lzaW9uIC0gMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhl
eGVjLCBtYWtlU3RyaW5nKHMsIG0pKSk7Ci0gICAgaWYgKGUgPj0gMCkgewotICAgICAgICBpZiAo
ZSArIDEgPCBzdGF0aWNfY2FzdDxpbnQ+KG0ubGVuZ3RoKCkpKQotICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBtYWtlU3RyaW5nKHMsIG0uc3Vic3RyaW5n
U2hhcmluZ0ltcGwoMCwgZSArIDEpLCAiLiIsIG0uc3Vic3RyaW5nU2hhcmluZ0ltcGwoZSArIDEp
KSkpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIG1ha2VT
dHJpbmcocywgbSkpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VO
b250cml2aWFsU3RyaW5nKGV4ZWMsIHMsICIwLiIsIGNoYXJTZXF1ZW5jZSgnMCcsIC0oZSArIDEp
KSwgbSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVVN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9V
U3RyaW5nLmNwcAkocmV2aXNpb24gNjU2NDIpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VT
dHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkNvbGxlY3Rvci5oIgotI2luY2x1
ZGUgImR0b2EuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC0zOSw2ICszOCw3IEBACiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi91bmljb2RlL1VURjguaD4KIAogI2lmIEhBVkUoU1RSSU5HU19IKQpAQCAtMTk4LDEwICsx
OTgsOCBAQCBVU3RyaW5nIFVTdHJpbmc6Om51bWJlcihsb25nIGwpCiAKIFVTdHJpbmcgVVN0cmlu
Zzo6bnVtYmVyKGRvdWJsZSBkKQogewotICAgIER0b2FCdWZmZXIgYnVmZmVyOwotICAgIHVuc2ln
bmVkIGxlbmd0aDsKLSAgICBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1hdChkLCBidWZm
ZXIsICZsZW5ndGgpOwotICAgIHJldHVybiBVU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICBO
dW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0
ZShidWZmZXIsIG51bWJlclRvU3RyaW5nKGQsIGJ1ZmZlcikpOwogfQogCiBVU3RyaW5nIFVTdHJp
bmc6OnN1YnN0cmluZ1NoYXJpbmdJbXBsKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KSBjb25zdApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5oCShyZXZpc2lvbiAwKQor
KysgSmF2YVNjcmlwdENvcmUvd3RmL0RlY2ltYWxOdW1iZXIuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBEZWNpbWFsTnVtYmVyX2gKKyNkZWZpbmUgRGVjaW1hbE51bWJlcl9oCisKKyNp
bmNsdWRlIDx3dGYvZHRvYS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2lu
Y2x1ZGUgPG1hdGguaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2VudW0gUm91bmRpbmdTaWduaWZp
Y2FudEZpZ3VyZXNUeXBlIHsgUm91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXMgfTsKK2VudW0gUm91
bmRpbmdEZWNpbWFsUGxhY2VzVHlwZSB7IFJvdW5kaW5nRGVjaW1hbFBsYWNlcyB9OworCitjbGFz
cyBEZWNpbWFsTnVtYmVyIHsKK3B1YmxpYzoKKyAgICBEZWNpbWFsTnVtYmVyKGRvdWJsZSBkKQor
ICAgIHsKKyAgICAgICAgYm9vbCBzaWduID0gZCA8IDA7IC8vIFRoaXMgKGNvcnJlY3RseSkgaWdu
b3JlcyB0aGUgc2lnbiBvbiAtMC4wLgorICAgICAgICBpbml0KHNpZ24sIGQpOworICAgIH0KKwor
ICAgIC8vIElmIG91ciB2ZXJzaW9uIG9mIGR0b2EgY291bGQgcm91bmQgdG8gYSBnaXZlbiBudW1i
ZXIgb2Ygc2lnbmlmaWNhbnQgZmlndXJlcyB0aGVuCisgICAgLy8gd2UgY291bGQgcmVtb3ZlIHRo
ZSBwcmUtcm91bmRpbmcgY29kZSBmcm9tIGhlcmUuICBXZSBjb3VsZCBhbHNvIGRvIHNvIGp1c3Qg
YnkKKyAgICAvLyBjYWxsaW5nIGR0b2EgYW5kIHBvc3Qtcm91bmRpbmcsIGhvd2V2ZXIgY3VycmVu
dGx5IHRoaXMgaXMgc2xvd2VyLCBzaW5jZSBpdCBmb3JjZXMKKyAgICAvLyBkdG9hIHRvIGdlbmVy
YXRlIGEgaGlnaGVyIHByZXNpc2lvbiByZXN1bHQuCisgICAgRGVjaW1hbE51bWJlcihkb3VibGUg
ZCwgUm91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXNUeXBlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZp
Z3VyZXMpCisgICAgeworICAgICAgICBBU1NFUlQoIWlzbmFuKGQpICYmICFpc2luZihkKSk7Cisg
ICAgICAgIEFTU0VSVChzaWduaWZpY2FudEZpZ3VyZXMgJiYgc2lnbmlmaWNhbnRGaWd1cmVzIDw9
IDIxKTsKKworICAgICAgICBib29sIHNpZ24gPSBkIDwgMDsgLy8gVGhpcyAoY29ycmVjdGx5KSBp
Z25vcmVzIHRoZSBzaWduIG9uIC0wLjAuCisgICAgICAgIGQgPSBmYWJzKGQpOyAvLyBtYWtlIGQg
cG9zaXRpdmUgYmVmb3JlIGdvaW5nIGFueSBmdXJ0aGVyLgorCisgICAgICAgIGludCBhZGp1c3Qg
PSAwOworICAgICAgICBpZiAoZCkgeworICAgICAgICAgICAgLy8gVG8gcm91bmQgYSBudW1iZXIg
d2UgYWxpZ24gaXQgc3VjaCB0aGF0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBkaWdpdHMgYXJlCisg
ICAgICAgICAgICAvLyB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludCwgdGhlbiBmbG9v
ci9jZWlsLiAgRm9yIGV4YW1wbGUsIHRvIHJvdW5kCisgICAgICAgICAgICAvLyAxMzU3OSB0byAz
IHMuZi4gd2UgZmlyc3QgYWRqdXN0IGl0IHRvIDEzNS43OSwgdXNlIGZsb29yL2NlaWwgdG8gb2J0
YWluIHRoZQorICAgICAgICAgICAgLy8gdmFsdWVzIDEzNS8xMzYsIGFuZCB0aGVuIHNlbGVjdCAx
MzYgKHNpbmNlIHRoaXMgaXMgY2xvc2VzdCB0byAxMzUuNzkpLgorICAgICAgICAgICAgLy8gVGhl
cmUgYXJlIGN1cnJlbnRseSAoZXhwICsgMSkgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNp
bWFsIHBvaW50LAorICAgICAgICAgICAgLy8gYW5kIHdlIHdhbnQgdGhzaSB0byBiZSBzaWduaWZp
Y2FudEZpZ3VyZXMsIHNvIHdlJ3JlIGdvaW5nIHRvIGFkanVzdCB0aGUKKyAgICAgICAgICAgIC8v
IGV4cG9uZW50IGJ5ICgoZXhwICsgMSkgLSBzaWduaWZpY2FudEZpZ3VyZXMpLiAgQWRqdXN0IGlz
IGVmZmVjdGl2ZWx5CisgICAgICAgICAgICAvLyBhIGNvdW50IG9mIGhvdyBtYW55IGRlY2ltYWwg
ZGlnaXRzIHRvIHJpZ2h0LXNoaWZ0IHRoZSBudW1iZXIgYnkuCisgICAgICAgICAgICBpbnQgZXhw
ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcihsb2cxMChkKSkpOworICAgICAgICAgICAgYWRqdXN0
ID0gKGV4cCArIDEpIC0gc2lnbmlmaWNhbnRGaWd1cmVzOworCisgICAgICAgICAgICAvLyBJZiB0
aGUgYWRqdXN0IHZhbHVlIG1pZ2h0IGJlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIC0gb3IgemVyby4g
IElmIHplcm8sIHRoZW4KKyAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8hIC0gdGhlIG51bWJl
ciBpcyBhbHJlYWR5IGFwcHJvcHJpYXRlbHkgYWxpZ25lZC4gIElmIGFkanVzdAorICAgICAgICAg
ICAgLy8gaXMgcG9zaXRpdmUgdGhlbiBkaXZpZGUgZCBieSAxMF5hZGp1c3QuICBJZiBhZGp1c3Qg
aXMgbmVnYXRpdmUgbXVsdGlwbHkgZAorICAgICAgICAgICAgLy8gYnkgMTBeLWFkanVzdC4gVGhp
cyBpcyBtYXRoZW1hdGljYWxseSB0aGUgc2FtZSwgYnV0IGF2b2lkcyB0d28gZnAgZGl2aWRlcwor
ICAgICAgICAgICAgLy8gKG9uZSBpbnNpZGUgaW50UG93MTAsIHdoZXJlIHRoZSBwb3dlciBpcyBu
ZWdhdGl2ZSkuCisgICAgICAgICAgICBpZiAoYWRqdXN0ID4gMCkKKyAgICAgICAgICAgICAgICBk
IC89IGludFBvdzEwKGFkanVzdCk7CisgICAgICAgICAgICBlbHNlIGlmIChhZGp1c3QgPCAwKQor
ICAgICAgICAgICAgICAgIGQgKj0gaW50UG93MTAoLWFkanVzdCk7CisKKyAgICAgICAgICAgIC8v
IFRyeSByb3VuZGluZyB1cCAmIHJvdW5kaW5nIGRvd24sIHNlbGVjdCB3aGljaGV2ZXIgaXMgY2xv
c2VzdCAocm91bmRpbmcgdXAgaWYgZXF1YWwgZGlzdGFuY2UpLgorICAgICAgICAgICAgZG91Ymxl
IGZsb29yT2ZEID0gZmxvb3IoZCk7CisgICAgICAgICAgICBkb3VibGUgY2VpbE9mRCA9IGZsb29y
T2ZEICsgMTsKKyAgICAgICAgICAgIGQgPSAoZmFicyhjZWlsT2ZEIC0gZCkgPD0gZmFicyhmbG9v
ck9mRCAtIGQpKSA/IGNlaWxPZkQgOiBmbG9vck9mRDsKKworICAgICAgICAgICAgLy8gVGhlIG51
bWJlcidzIGV4cG9uZW50IGhhcyBiZWVuIGFsdGVyZWQgLSBidXQgZG9uJ3QgY2hhbmdlIGl0IGJh
Y2shICBXZSBjYW4KKyAgICAgICAgICAgIC8vIGp1c3QgcnVuIGR0b2Egb24gdGhlIG1vZGlmaWVk
IHZhbHVlLCBhbmQgYWRqdXN0IHRoZSBleHBvbmVudCBhZnRlcndhcmQgdG8KKyAgICAgICAgICAg
IC8vIGFjY291bnQgZm9yIHRoaXMuCisgICAgICAgIH0KKworICAgICAgICBpbml0KHNpZ24sIGQp
OworCisgICAgICAgIC8vIFdlIGFsdGVyZXJlZCB0aGUgdmFsdWUgd2hlbiByb3VuZGluZyBpdCAt
IG1vZGlmeSB0aGUgZXhwb25lbnQgdG8gYWRqdXN0IGZvciB0aGlzLAorICAgICAgICAvLyBidXQg
ZG9uJ3QgbWVzcyB3aXRoIHRoZSBleHBvbmVudCBvZiB6ZXJvLgorICAgICAgICBpZiAoIWlzWmVy
bygpKQorICAgICAgICAgICAgbV9leHBvbmVudCArPSBhZGp1c3Q7CisKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHRoZSBzaWduaWZpY2FuZCBkb2VzIG5vdCBjb250YWluIG1vcmUgZGlnaXRzIHRoYW4g
cmVxdWVzdGVkLgorICAgICAgICByb3VuZFRvUHJlY2lzaW9uKHNpZ25pZmljYW50RmlndXJlcyk7
CisgICAgfQorCisgICAgLy8gSWYgb3VyIHZlcnNpb24gb2YgZHRvYSBjb3VsZCByb3VuZCB0byBh
IGdpdmVuIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0aGVuIHdlCisgICAgLy8gY291bGQgcmVt
b3ZlIHRoZSBwcmUtcm91bmRpbmcgY29kZSBmcm9tIGhlcmUuICBXZSBjb3VsZCBhbHNvIGRvIHNv
IGp1c3QgYnkgY2FsbGluZworICAgIC8vIGR0b2EgYW5kIHBvc3Qtcm91bmRpbmcsIGhvd2V2ZXIg
Y3VycmVudGx5IHRoaXMgaXMgc2xvd2VyLCBzaW5jZSBpdCBmb3JjZXMgZHRvYSB0bworICAgIC8v
IGdlbmVyYXRlIGEgaGlnaGVyIHByZXNpc2lvbiByZXN1bHQuCisgICAgRGVjaW1hbE51bWJlcihk
b3VibGUgZCwgUm91bmRpbmdEZWNpbWFsUGxhY2VzVHlwZSwgdW5zaWduZWQgZGVjaW1hbFBsYWNl
cykKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNuYW4oZCkgJiYgIWlzaW5mKGQpKTsKKyAgICAg
ICAgQVNTRVJUKGRlY2ltYWxQbGFjZXMgPD0gMjApOworCisgICAgICAgIGJvb2wgc2lnbiA9IGQg
PCAwOyAvLyBUaGlzIChjb3JyZWN0bHkpIGlnbm9yZXMgdGhlIHNpZ24gb24gLTAuMC4KKyAgICAg
ICAgZCA9IGZhYnMoZCk7IC8vIE1ha2UgZCBwb3NpdGl2ZSBiZWZvcmUgZ29pbmcgYW55IGZ1cnRo
ZXIuCisKKyAgICAgICAgQVNTRVJUKGQgPCAxZSsyMSk7IC8vIFdlIGRvbid0IGN1cnJlbnRseSBz
dXBwb3J0IHJvdW5kaW5nIHRvIGRlY2ltYWwgcGxhY2VzIGZvciB2YWx1ZXMgPj0gMWUrMjEuCisK
KyAgICAgICAgLy8gQWRqdXN0IHRoZSBudW1iZXIgYnkgaW5jcmVhc2luZyB0aGUgZXhwb25lbnQg
YnkgZGVjaW1hbFBsYWNlcywgc3VjaAorICAgICAgICAvLyB0aGF0IHdlIGNhbiByb3VuZCB0byB0
aGlzIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBqc2luZyBmbG9vci4KKyAgICAgICAgaWYgKGRl
Y2ltYWxQbGFjZXMpCisgICAgICAgICAgICBkICo9IGludFBvdzEwKGRlY2ltYWxQbGFjZXMpOwor
ICAgICAgICAvLyBUcnkgcm91bmRpbmcgdXAgJiByb3VuZGluZyBkb3duLCBzZWxlY3Qgd2hpY2hl
dmVyIGlzIGNsb3Nlc3QgKHJvdW5kaW5nIHVwIGlmIGVxdWFsIGRpc3RhbmNlKS4KKyAgICAgICAg
ZG91YmxlIGZsb29yT2ZEID0gZmxvb3IoZCk7CisgICAgICAgIGRvdWJsZSBjZWlsT2ZEID0gZmxv
b3JPZkQgKyAxOworICAgICAgICBkID0gKGZhYnMoY2VpbE9mRCAtIGQpIDw9IGZhYnMoZmxvb3JP
ZkQgLSBkKSkgPyBjZWlsT2ZEIDogZmxvb3JPZkQ7CisgICAgICAgIC8vIFRoZSBudW1iZXIncyBl
eHBvbmVudCBoYXMgYmVlbiBhbHRlcmVkIC0gYnV0IGRvbid0IGNoYW5nZSBpdCBiYWNrISAgV2Ug
Y2FuCisgICAgICAgIC8vIGp1c3QgcnVuIGR0b2Egb24gdGhlIG1vZGlmaWVkIHZhbHVlLCBhbmQg
YWRqdXN0IHRoZSBleHBvbmVudCBhZnRlcndhcmQgdG8KKyAgICAgICAgLy8gYWNjb3VudCBmb3Ig
dGhpcy4KKworICAgICAgICBpbml0KHNpZ24sIGQpOworCisgICAgICAgIC8vIFdlIHJvdW5lZCB0
aGUgdmFsdWUgYmVmb3JlIGNhbGxpbmcgZHRvYSwgc28gdGhlIHJlc3VsdCBzaG91bGQgbm90IGJl
IGZyYWN0aW9uYWwuCisgICAgICAgIEFTU0VSVChtX2V4cG9uZW50ID49IDApOworCisgICAgICAg
IC8vIFdlIGFsdGVyZXJlZCB0aGUgdmFsdWUgd2hlbiByb3VuZGluZyBpdCAtIG1vZGlmeSB0aGUg
ZXhwb25lbnQgdG8gYWRqdXN0IGZvciB0aGlzLAorICAgICAgICAvLyBidXQgZG9uJ3QgbWVzcyB3
aXRoIHRoZSBleHBvbmVudCBvZiB6ZXJvLgorICAgICAgICBpZiAoIWlzWmVybygpKQorICAgICAg
ICAgICAgbV9leHBvbmVudCAtPSBkZWNpbWFsUGxhY2VzOworCisgICAgICAgIC8vIFRoZSB2YWx1
ZSB3YXMgPCAxZSsyMSBiZWZvcmUgd2Ugc3RhcnRlZCwgc2hvdWxkIHN0aWxsIGJlLgorICAgICAg
ICBBU1NFUlQobV9leHBvbmVudCA8IDIxKTsKKworICAgICAgICB1bnNpZ25lZCBzaWduaWZpY2Fu
dEZpZ3VyZXMgPSAxICsgbV9leHBvbmVudCArIGRlY2ltYWxQbGFjZXM7CisgICAgICAgIEFTU0VS
VChzaWduaWZpY2FudEZpZ3VyZXMgJiYgc2lnbmlmaWNhbnRGaWd1cmVzIDw9IDQxKTsKKyAgICAg
ICAgcm91bmRUb1ByZWNpc2lvbihzaWduaWZpY2FudEZpZ3VyZXMpOworICAgIH0KKworICAgIHVu
c2lnbmVkIHRvU3RyaW5nRGVjaW1hbChOdW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQorICAg
IHsKKyAgICAgICAgLy8gU2hvdWxkIGFsd2F5cyBiZSBhdCBsZWFzdCBvbmUgZGlnaXQgdG8gYWRk
IHRvIHRoZSBzdHJpbmchCisgICAgICAgIEFTU0VSVChtX3ByZWNpc2lvbik7CisgICAgICAgIFVD
aGFyKiBuZXh0ID0gYnVmZmVyOworCisgICAgICAgIC8vIGlmIHRoZSBleHBvbmVudCBpcyBuZWdh
dGl2ZSB0aGUgbnVtYmVyIGRlY2ltYWwgcmVwcmVzZW50YXRpb24gaXMgb2YgdGhlIGZvcm06Cisg
ICAgICAgIC8vIFs8c2lnbj5dMC5bPHplcm9zPl08c2lnbmlmaWNhbmQ+CisgICAgICAgIGlmICht
X2V4cG9uZW50IDwgMCkgeworICAgICAgICAgICAgdW5zaWduZWQgemVyb3MgPSAtbV9leHBvbmVu
dCAtIDE7CisKKyAgICAgICAgICAgIGlmIChtX3NpZ24pCisgICAgICAgICAgICAgICAgKm5leHQr
KyA9ICctJzsKKyAgICAgICAgICAgICpuZXh0KysgPSAnMCc7CisgICAgICAgICAgICAqbmV4dCsr
ID0gJy4nOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHplcm9zOyArK2kp
CisgICAgICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAgICAgICAgICAgICAgICpuZXh0Kysg
PSBtX3NpZ25pZmljYW5kW2ldOworCisgICAgICAgICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsK
KyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludCA9
IG1fZXhwb25lbnQgKyAxOworCisgICAgICAgIC8vIElmIHRoZSBwcmVjaXNpb24gaXMgPD0gdGhh
biB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB0byBnZXQgdXAgdG8gdGhlIGRlY2ltYWwKKyAgICAgICAg
Ly8gcG9pbnQsIHRoZW4gdGhlcmUgaXMgbm8gZnJhY3Rpb25hbCBwYXJ0LCBudW1iZXIgaXMgb2Yg
dGhlIGZvcm06CisgICAgICAgIC8vIFs8c2lnbj5dPHNpZ25pZmljYW5kPls8emVyb3M+XQorICAg
ICAgICBpZiAobV9wcmVjaXNpb24gPD0gZGlnaXRzQmVmb3JlRGVjaW1hbFBvaW50KSB7CisgICAg
ICAgICAgICBpZiAobV9zaWduKQorICAgICAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcmVjaXNpb247ICsraSkKKyAgICAg
ICAgICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCAoZGlnaXRzQmVmb3JlRGVjaW1hbFBvaW50IC0gbV9wcmVjaXNp
b24pOyArK2kpCisgICAgICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKKworICAgICAgICAgICAg
cmV0dXJuIG5leHQgLSBidWZmZXI7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBnZXQg
aGVyZSwgbnVtYmVyIHN0YXJ0cyBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQsIGFuZCBlbmRzIGFm
dGVyIGl0LAorICAgICAgICAvLyBhcyBzdWNoIGlzIG9mIHRoZSBmb3JtOgorICAgICAgICAvLyBb
PHNpZ24+XTxzaWduaWZpY2FuZC1iZWdpbj4uPHNpZ25pZmljYW5kLWVuZD4KKworICAgICAgICBp
ZiAobV9zaWduKQorICAgICAgICAgICAgKm5leHQrKyA9ICctJzsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludDsgKytpKQorICAgICAgICAg
ICAgKm5leHQrKyA9IG1fc2lnbmlmaWNhbmRbaV07CisgICAgICAgICpuZXh0KysgPSAnLic7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IGRpZ2l0c0JlZm9yZURlY2ltYWxQb2ludDsgaSA8IG1f
cHJlY2lzaW9uOyArK2kpCisgICAgICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFtpXTsK
KworICAgICAgICByZXR1cm4gbmV4dCAtIGJ1ZmZlcjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB0
b1N0cmluZ0V4cG9uZW50aWFsKE51bWJlclRvU3RyaW5nQnVmZmVyICZidWZmZXIpCisgICAgewor
ICAgICAgICAvLyBTaG91bGQgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBkaWdpdCB0byBhZGQgdG8g
dGhlIHN0cmluZyEKKyAgICAgICAgQVNTRVJUKG1fcHJlY2lzaW9uKTsKKworICAgICAgICBVQ2hh
ciogbmV4dCA9IGJ1ZmZlcjsKKworICAgICAgICAvLyBBZGQgdGhlIHNpZ24KKyAgICAgICAgaWYg
KG1fc2lnbikKKyAgICAgICAgICAgICpuZXh0KysgPSAnLSc7CisKKyAgICAgICAgLy8gQWRkIHRo
ZSBzaWduaWZpY2FuZAorICAgICAgICAqbmV4dCsrID0gbV9zaWduaWZpY2FuZFswXTsKKyAgICAg
ICAgaWYgKG1fcHJlY2lzaW9uID4gMSkgeworICAgICAgICAgICAgKm5leHQrKyA9ICcuJzsKKyAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBtX3ByZWNpc2lvbjsgKytpKQorICAg
ICAgICAgICAgICAgICpuZXh0KysgPSBtX3NpZ25pZmljYW5kW2ldOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gQWRkICJlKyIgb3IgImUtIgorICAgICAgICAqbmV4dCsrID0gJ2UnOworICAgICAg
ICBpbnQgZXhwb25lbnQ7CisgICAgICAgIGlmIChtX2V4cG9uZW50ID49IDApIHsKKyAgICAgICAg
ICAgICpuZXh0KysgPSAnKyc7CisgICAgICAgICAgICBleHBvbmVudCA9IG1fZXhwb25lbnQ7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAqbmV4dCsrID0gJy0nOworICAgICAgICAgICAg
ZXhwb25lbnQgPSAtbV9leHBvbmVudDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCB0aGUg
ZXhwb25lbnQKKyAgICAgICAgaWYgKGV4cG9uZW50ID49IDEwMCkKKyAgICAgICAgICAgICpuZXh0
KysgPSAnMCcgKyBleHBvbmVudCAvIDEwMDsKKyAgICAgICAgaWYgKGV4cG9uZW50ID49IDEwKQor
ICAgICAgICAgICAgKm5leHQrKyA9ICcwJyArIChleHBvbmVudCAlIDEwMCkgLyAxMDsKKyAgICAg
ICAgKm5leHQrKyA9ICcwJyArIGV4cG9uZW50ICUgMTA7CisKKyAgICAgICAgcmV0dXJuIG5leHQg
LSBidWZmZXI7CisgICAgfQorCisgICAgYm9vbCBzaWduKCkgeyByZXR1cm4gbV9zaWduOyB9Cisg
ICAgaW50IGV4cG9uZW50KCkgeyByZXR1cm4gbV9leHBvbmVudDsgfQorICAgIGNvbnN0IGNoYXIq
IHNpZ25pZmljYW5kKCkgeyByZXR1cm4gbV9zaWduaWZpY2FuZDsgfSAvLyBzaWduaWZpY2FuZCBj
b250YWlucyBwcmVjaXNpb24gY2hhcmFjdGVycywgaXMgbm90IG51bGwtdGVybWluYXRlZC4KKyAg
ICB1bnNpZ25lZCBwcmVjaXNpb24oKSB7IHJldHVybiBtX3ByZWNpc2lvbjsgfQorCitwcml2YXRl
OgorICAgIHZvaWQgaW5pdChib29sIHNpZ24sIGRvdWJsZSBkKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKCFpc25hbihkKSAmJiAhaXNpbmYoZCkpOworCisgICAgICAgIGludCBkZWNpbWFsUG9pbnQ7
CisgICAgICAgIGludCBzaWduVW51c2VkOworICAgICAgICBjaGFyKiByZXN1bHRFbmQgPSAwOwor
ICAgICAgICBXVEY6OmR0b2EobV9zaWduaWZpY2FuZCwgZCwgMCwgJmRlY2ltYWxQb2ludCwgJnNp
Z25VbnVzZWQsICZyZXN1bHRFbmQpOworCisgICAgICAgIG1fc2lnbiA9IHNpZ247CisgICAgICAg
IG1fcHJlY2lzaW9uID0gcmVzdWx0RW5kIC0gbV9zaWduaWZpY2FuZDsKKyAgICAgICAgbV9leHBv
bmVudCA9IGRlY2ltYWxQb2ludCAtIDE7CisKKyAgICAgICAgLy8gTm8gdmFsdWVzIG90aGVyIHRo
YW4gemVybyBzaG91bGQgaGF2ZSBhIGxlYWRpbmcgemVyby4KKyAgICAgICAgQVNTRVJUKG1fc2ln
bmlmaWNhbmRbMF0gIT0gJzAnIHx8IG1fcHJlY2lzaW9uID09IDEpOworICAgICAgICAvLyBaZXJv
IHNob3VsZCBhbHdheXMgaGF2ZSBleHBvbmVudCAwLgorICAgICAgICBBU1NFUlQobV9zaWduaWZp
Y2FuZFswXSAhPSAnMCcgfHwgIW1fZXhwb25lbnQpOworICAgIH0KKworICAgIGJvb2wgaXNaZXJv
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3NpZ25pZmljYW5kWzBdID09ICcwJzsKKyAgICB9
CisKKyAgICAvLyBXZSBwcmUtcm91bmQgdGhlIHZhbHVlcyB0byBkdG9hIC0gd2hpY2ggbGVhZHMg
dG8gaXQgZ2VuZXJhdGluZyBmYXN0ZXIgcmVzdWx0cy4KKyAgICAvLyBCdXQgZHRvYSB3b24ndCBo
YXZlIHplcm8gcGFkZGVkIHRoZSBzaWduaWZpY2FuZCB0byB0aGUgcHJlY2lzaW9uIHdlIHJlcXVp
cmUsCisgICAgLy8gYW5kIGFsc28gbWlnaHQgaGF2ZSBwcm9kdWNlZCB0b28gbWFueSBkaWdpdHMg
aWYgcm91bmRpbmcgd2VudCB3cm9uZyBzb21laG93LgorICAgIC8vIEFkanVzdCBmb3IgdGhpcy4K
KyAgICB2b2lkIHJvdW5kVG9QcmVjaXNpb24odW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKHNpZ25pZmljYW50RmlndXJlcyAmJiBzaWduaWZpY2FudEZp
Z3VyZXMgPD0gc2l6ZW9mKER0b2FCdWZmZXIpKTsKKworICAgICAgICAvLyBJZiB0aGVyZSBhcmUg
dG9vIGZldyBvZiB0b28gbWFueSBkaWdpdHMgaW4gdGhlIHNpZ25pZmljYW5kIHRoZW4gYWRkIG1v
cmUsIG9yIHJlbW92ZSBzb21lIQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3ByZWNpc2lv
bjsgaSA8IHNpZ25pZmljYW50RmlndXJlczsgKytpKQorICAgICAgICAgICAgbV9zaWduaWZpY2Fu
ZFtpXSA9ICcwJzsKKyAgICAgICAgbV9wcmVjaXNpb24gPSBzaWduaWZpY2FudEZpZ3VyZXM7Cisg
ICAgfQorCisgICAgYm9vbCBtX3NpZ247CisgICAgaW50IG1fZXhwb25lbnQ7CisgICAgRHRvYUJ1
ZmZlciBtX3NpZ25pZmljYW5kOworICAgIHVuc2lnbmVkIG1fcHJlY2lzaW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6RGVjaW1hbE51bWJlcjsKK3VzaW5nIFdURjo6
Um91bmRpbmdTaWduaWZpY2FudEZpZ3VyZXM7Cit1c2luZyBXVEY6OlJvdW5kaW5nRGVjaW1hbFBs
YWNlczsKKworI2VuZGlmIC8vIERlY2ltYWxOdW1iZXJfaApJbmRleDogSmF2YVNjcmlwdENvcmUv
d3RmL2R0b2EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcAko
cmV2aXNpb24gNjU2NDIpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyODUsODMgKzIyODUsMzUgQEAgcmV0OgogICAgICAgICAqcnZlID0gczsKIH0K
IAotc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoY2hhciomIG5leHQsIGNvbnN0IGNo
YXIqIHNyYywgdW5zaWduZWQgc2l6ZSkKK2RvdWJsZSBpbnRQb3cxMChpbnQgZSkKIHsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICAqbmV4dCsrID0gKnNy
YysrOwotfQotCi12b2lkIGRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0KGRvdWJsZSBk
LCBEdG9hQnVmZmVyIGJ1ZmZlciwgdW5zaWduZWQqIHJlc3VsdExlbmd0aCkKLXsKLSAgICBBU1NF
UlQoYnVmZmVyKTsKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlICJleHBvbmVudGlhdGlv
biBieSBzcXVhcmluZyIgYWxnb3JpdGhtIGFuZAorICAgIC8vIGxvbmcgZG91YmxlIHRvIHF1aWNr
bHkgYW5kIHByZWNpc2VseSBjYWxjdWxhdGUgaW50ZWdlciBwb3dlcnMgb2YgMTAuMC4KIAotICAg
IC8vIGF2b2lkIGV2ZXIgcHJpbnRpbmcgLU5hTiwgaW4gSlMgY29uY2VwdHVhbGx5IHRoZXJlIGlz
IG9ubHkgb25lIE5hTiB2YWx1ZQotICAgIGlmIChpc25hbihkKSkgewotICAgICAgICBhcHBlbmQo
YnVmZmVyLCAiTmFOIiwgMyk7Ci0gICAgICAgIGlmIChyZXN1bHRMZW5ndGgpCi0gICAgICAgICAg
ICAqcmVzdWx0TGVuZ3RoID0gMzsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyAtMCAt
PiAiMCIKLSAgICBpZiAoIWQpIHsKLSAgICAgICAgYnVmZmVyWzBdID0gJzAnOwotICAgICAgICBp
ZiAocmVzdWx0TGVuZ3RoKQotICAgICAgICAgICAgKnJlc3VsdExlbmd0aCA9IDE7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgLy8gVGhpcyBpcyBhIGhhbmR5IHdvcmthcm91bmQgZm9yIDxy
ZGFyOi8vcHJvYmxlbS80NDk0NzU2PgogCi0gICAgaW50IGRlY2ltYWxQb2ludDsKLSAgICBpbnQg
c2lnbjsKKyAgICBpZiAoIWUpCisgICAgICAgIHJldHVybiAxLjA7CiAKLSAgICBEdG9hQnVmZmVy
IHJlc3VsdDsKLSAgICBjaGFyKiByZXN1bHRFbmQgPSAwOwotICAgIFdURjo6ZHRvYShyZXN1bHQs
IGQsIDAsICZkZWNpbWFsUG9pbnQsICZzaWduLCAmcmVzdWx0RW5kKTsKLSAgICBpbnQgbGVuZ3Ro
ID0gcmVzdWx0RW5kIC0gcmVzdWx0OwotCi0gICAgY2hhciogbmV4dCA9IGJ1ZmZlcjsKLSAgICBp
ZiAoc2lnbikKLSAgICAgICAgKm5leHQrKyA9ICctJzsKLQotICAgIGlmIChkZWNpbWFsUG9pbnQg
PD0gMCAmJiBkZWNpbWFsUG9pbnQgPiAtNikgewotICAgICAgICAqbmV4dCsrID0gJzAnOwotICAg
ICAgICAqbmV4dCsrID0gJy4nOwotICAgICAgICBmb3IgKGludCBqID0gZGVjaW1hbFBvaW50OyBq
IDwgMDsgaisrKQotICAgICAgICAgICAgKm5leHQrKyA9ICcwJzsKLSAgICAgICAgYXBwZW5kKG5l
eHQsIHJlc3VsdCwgbGVuZ3RoKTsKLSAgICB9IGVsc2UgaWYgKGRlY2ltYWxQb2ludCA8PSAyMSAm
JiBkZWNpbWFsUG9pbnQgPiAwKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPD0gZGVjaW1hbFBvaW50
KSB7Ci0gICAgICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0LCBsZW5ndGgpOwotICAgICAgICAg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCBkZWNpbWFsUG9pbnQgLSBsZW5ndGg7IGorKykKLSAgICAg
ICAgICAgICAgICAqbmV4dCsrID0gJzAnOworICAgIGJvb2wgbmVnYXRpdmUgPSBlIDwgMDsKKyAg
ICB1bnNpZ25lZCBleHAgPSBuZWdhdGl2ZSA/IC1lIDogZTsKKworICAgIGxvbmcgZG91YmxlIHJl
c3VsdCA9IDEwLjA7CisgICAgYm9vbCBmb3VuZE9uZSA9IGZhbHNlOworICAgIGZvciAoaW50IGJp
dCA9IDMxOyBiaXQgPj0gMDsgYml0LS0pIHsKKyAgICAgICAgaWYgKCFmb3VuZE9uZSkgeworICAg
ICAgICAgICAgaWYgKChleHAgPj4gYml0KSAmIDEpCisgICAgICAgICAgICAgICAgZm91bmRPbmUg
PSB0cnVlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXBwZW5kKG5leHQsIHJlc3Vs
dCwgZGVjaW1hbFBvaW50KTsKLSAgICAgICAgICAgICpuZXh0KysgPSAnLic7Ci0gICAgICAgICAg
ICBhcHBlbmQobmV4dCwgcmVzdWx0ICsgZGVjaW1hbFBvaW50LCBsZW5ndGggLSBkZWNpbWFsUG9p
bnQpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZXN1bHRbMF0gPCAnMCcgfHwgcmVzdWx0
WzBdID4gJzknKQotICAgICAgICBhcHBlbmQobmV4dCwgcmVzdWx0LCBsZW5ndGgpOwotICAgIGVs
c2UgewotICAgICAgICAqbmV4dCsrID0gcmVzdWx0WzBdOwotICAgICAgICBpZiAobGVuZ3RoID4g
MSkgewotICAgICAgICAgICAgKm5leHQrKyA9ICcuJzsKLSAgICAgICAgICAgIGFwcGVuZChuZXh0
LCByZXN1bHQgKyAxLCBsZW5ndGggLSAxKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAq
IHJlc3VsdDsKKyAgICAgICAgICAgIGlmICgoZXhwID4+IGJpdCkgJiAxKQorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEwLjA7CiAgICAgICAgIH0KLQotICAgICAgICAqbmV4dCsr
ID0gJ2UnOwotICAgICAgICAqbmV4dCsrID0gKGRlY2ltYWxQb2ludCA+PSAwKSA/ICcrJyA6ICct
JzsKLSAgICAgICAgLy8gZGVjaW1hbFBvaW50IGNhbid0IGJlIG1vcmUgdGhhbiAzIGRpZ2l0cyBk
ZWNpbWFsIGdpdmVuIHRoZQotICAgICAgICAvLyBuYXR1cmUgb2YgZmxvYXQgcmVwcmVzZW50YXRp
b24KLSAgICAgICAgaW50IGV4cG9uZW50aWFsID0gZGVjaW1hbFBvaW50IC0gMTsKLSAgICAgICAg
aWYgKGV4cG9uZW50aWFsIDwgMCkKLSAgICAgICAgICAgIGV4cG9uZW50aWFsID0gLWV4cG9uZW50
aWFsOwotICAgICAgICBpZiAoZXhwb25lbnRpYWwgPj0gMTAwKQotICAgICAgICAgICAgKm5leHQr
KyA9IHN0YXRpY19jYXN0PGNoYXI+KCcwJyArIGV4cG9uZW50aWFsIC8gMTAwKTsKLSAgICAgICAg
aWYgKGV4cG9uZW50aWFsID49IDEwKQotICAgICAgICAgICAgKm5leHQrKyA9IHN0YXRpY19jYXN0
PGNoYXI+KCcwJyArIChleHBvbmVudGlhbCAlIDEwMCkgLyAxMCk7Ci0gICAgICAgICpuZXh0Kysg
PSBzdGF0aWNfY2FzdDxjaGFyPignMCcgKyBleHBvbmVudGlhbCAlIDEwKTsKICAgICB9Ci0gICAg
aWYgKHJlc3VsdExlbmd0aCkKLSAgICAgICAgKnJlc3VsdExlbmd0aCA9IG5leHQgLSBidWZmZXI7
CisKKyAgICBpZiAobmVnYXRpdmUpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+
KDEuMCAvIHJlc3VsdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4ocmVzdWx0KTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmgJKHJldmlzaW9uIDY1NjQy
KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTUg
KzM1LDEwIEBAIGRvdWJsZSBzdHJ0b2QoY29uc3QgY2hhciogczAwLCBjaGFyKiogc2UKIAogdHlw
ZWRlZiBjaGFyIER0b2FCdWZmZXJbODBdOwogdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBk
b3VibGUgZCwgaW50IG5kaWdpdHMsIGludCogZGVjcHQsIGludCogc2lnbiwgY2hhcioqIHJ2ZSk7
Ci0KLS8vIGR0b2EoKSBmb3IgRUNNQS0yNjIgJ1RvU3RyaW5nIEFwcGxpZWQgdG8gdGhlIE51bWJl
ciBUeXBlLicKLS8vIFRoZSAqcmVzdWx0TGVuZ3RoIHdpbGwgaGF2ZSB0aGUgbGVuZ3RoIG9mIHRo
ZSByZXN1bHRhbnQgc3RyaW5nIGluIGJ1ZmVyLgotLy8gVGhlIHJlc3VsdGFudCBzdHJpbmcgaXNu
J3QgdGVybWluYXRlZCBieSAwLgotdm9pZCBkb3VibGVUb1N0cmluZ0luSmF2YVNjcmlwdEZvcm1h
dChkb3VibGUsIER0b2FCdWZmZXIsIHVuc2lnbmVkKiByZXN1bHRMZW5ndGgpOworZG91YmxlIGlu
dFBvdzEwKGludCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OkR0b2FCdWZm
ZXI7Ci11c2luZyBXVEY6OmRvdWJsZVRvU3RyaW5nSW5KYXZhU2NyaXB0Rm9ybWF0OwogCiAjZW5k
aWYgLy8gV1RGX2R0b2FfaApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuY3Bw
CShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvRGVjaW1hbE51bWJlci5oPgog
I2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KIApAQCAtOTQ3LDYgKzk0Nyw0MSBAQCBmbG9hdCBjaGFyYWN0ZXJzVG9GbG9hdChjb25zdCBV
Q2hhciogZGF0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihjaGFyYWN0ZXJzVG9Eb3Vi
bGUoZGF0YSwgbGVuZ3RoLCBvaykpOwogfQogCitzdGF0aWMgdW5zaWduZWQgY29weVRvU3RyaW5n
KGNvbnN0IGNoYXIqIHN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBOdW1iZXJUb1N0cmluZ0J1ZmZl
ciYgYnVmZmVyKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkK
KyAgICAgICAgYnVmZmVyW2ldID0gc3RyaW5nW2ldOworICAgIHJldHVybiBsZW5ndGg7Cit9CisK
K3N0YXRpYyBORVZFUl9JTkxJTkUgdW5zaWduZWQgbmFuT3JJbmZUb1N0cmluZyhkb3VibGUgeCwg
TnVtYmVyVG9TdHJpbmdCdWZmZXImIGJ1ZmZlcikKK3sKKyAgICBBU1NFUlQoaXNuYW4oeCkgfHwg
aXNpbmYoeCkpOworICAgIGlmIChpc25hbih4KSkKKyAgICAgICAgcmV0dXJuIGNvcHlUb1N0cmlu
ZygiTmFOIiwgMywgYnVmZmVyKTsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiBjb3B5
VG9TdHJpbmcoIi1JbmZpbml0eSIsIDksIGJ1ZmZlcik7CisgICAgcmV0dXJuIGNvcHlUb1N0cmlu
ZygiSW5maW5pdHkiLCA4LCBidWZmZXIpOworfQorCisvLyB0b1N0cmluZyBjb252ZXJ0cyBhIG51
bWJlciB0byBhIHN0cmluZyB3aXRob3V0IHJvdW5kaW5nLiBGb3IgdmFsdWVzIGluIHRoZSByYW5n
ZQorLy8gMWUtNiA8PSB4IDwgMWUrMjEgdGhlIHJlc3VsdCBpcyBmb3JtYXR0ZWQgYXMgYSBkZWNp
bWFsLCB3aXRoIHZhbHVlcyBvdXRzaWRlIG9mCisvLyB0aGlzIHJhbmdlIGJlaW5nIGZvcm1hdHRl
ZCBhcyBhbiBleHBvbmVudGlhbC4KK3Vuc2lnbmVkIG51bWJlclRvU3RyaW5nKGRvdWJsZSB4LCBO
dW1iZXJUb1N0cmluZ0J1ZmZlciYgYnVmZmVyKQoreworICAgIC8vIEhhbmRsZSBOYU4gYW5kIElu
ZmluaXR5LgorICAgIGlmIChVTkxJS0VMWShpc25hbih4KSB8fCBpc2luZih4KSkpCisgICAgICAg
IHJldHVybiBuYW5PckluZlRvU3RyaW5nKHgsIGJ1ZmZlcik7CisKKyAgICAvLyBDb252ZXJ0IHRv
IGRlY2ltYWwsIG5vIHJvdW5kaW5nLgorICAgIERlY2ltYWxOdW1iZXIgbnVtYmVyKHgpOworCisg
ICAgLy8gRm9ybWF0IGFzIGRlY2ltYWwgb3IgZXhwb25lbnRpYWwsIGRlcGVuZGluZyBvbiB0aGUg
ZXhwb25lbnQuCisgICAgcmV0dXJuIG51bWJlci5leHBvbmVudCgpID49IC02ICYmIG51bWJlci5l
eHBvbmVudCgpIDwgMjEKKyAgICAgICAgPyBudW1iZXIudG9TdHJpbmdEZWNpbWFsKGJ1ZmZlcikK
KyAgICAgICAgOiBudW1iZXIudG9TdHJpbmdFeHBvbmVudGlhbChidWZmZXIpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVEYKIAogI2lmbmRlZiBOREVCVUcKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0
Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1dURlN0cmluZy5oCShyZXZpc2lvbiA2NTY0MikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1dURlN0cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMCBAQCBjbGFzcyBCU3Ry
aW5nOwogCiBuYW1lc3BhY2UgV1RGIHsKIAorLy8gU2l6ZSA9IDgwIGZvciBzaXplb2YoRHRvYUJ1
ZmZlcikgKyBzb21lIHNpZ24gYml0cywgZGVjaW1hbCBwb2ludCwgJ2UnLCBleHBvbmVudCBkaWdp
dHMuCit0eXBlZGVmIFVDaGFyIE51bWJlclRvU3RyaW5nQnVmZmVyWzk2XTsKK3Vuc2lnbmVkIG51
bWJlclRvU3RyaW5nKGRvdWJsZSwgTnVtYmVyVG9TdHJpbmdCdWZmZXImKTsKKwogY2xhc3MgQ1N0
cmluZzsKIAogLy8gRGVjbGFyYXRpb25zIG9mIHN0cmluZyBvcGVyYXRpb25zCkBAIC00NTMsNCAr
NDU3LDcgQEAgdXNpbmcgV1RGOjpjaGFyYWN0ZXJzVG9JbnQ7CiB1c2luZyBXVEY6OmNoYXJhY3Rl
cnNUb0Zsb2F0OwogdXNpbmcgV1RGOjpjaGFyYWN0ZXJzVG9Eb3VibGU7CiAKK3VzaW5nIFdURjo6
TnVtYmVyVG9TdHJpbmdCdWZmZXI7Cit1c2luZyBXVEY6Om51bWJlclRvU3RyaW5nOworCiAjZW5k
aWYKSW5kZXg6IEphdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODY1KQorKysgSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTAtMDgtMjMgIEdhdmlu
IEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDQ4NworCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3Rl
eHQvV1RGU3RyaW5nLmg6IEFkZGVkLgorCiAyMDEwLTA4LTExICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBzIGJ5IERhcmlu
IEFkbGVyICYgU2FtIFdlaW5pZy4KSW5kZXg6IEphdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRHbHVlL0Zv
cndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0cmluZy5oCShyZXZpc2lvbiAwKQorKysgSmF2
YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvV1RGU3RyaW5nLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XVEZTdHJpbmcu
aD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiA2NTg2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMjMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFj
bG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ4Nwor
CisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2VyaWFsaXplRm9yTnVtYmVyVHlwZSk6CisgICAgICAgICAgICBVcGRhdGUgZnVuY3Rp
b24gY2FsbCB0byBudW1iZXJUb1N0cmluZy4KKwogMjAxMC0wOC0yMyAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRl
eDogV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDY1NjQyKQor
KysgV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NTEsMTAgKzE3NTEsOCBAQCBTdHJpbmcgc2VyaWFsaXplRm9yTnVtYmVyVHlwZShkb3Vi
bGUgbnVtCiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIEhUTUw1LCAidGhlIGJlc3QgcmVwcmVzZW50
YXRpb24gb2YgdGhlIG51bWJlciBuIGFzIGEgZmxvYXRpbmcKICAgICAvLyBwb2ludCBudW1iZXIi
IGlzIGEgc3RyaW5nIHByb2R1Y2VkIGJ5IGFwcGx5aW5nIFRvU3RyaW5nKCkgdG8gbi4KLSAgICBE
dG9hQnVmZmVyIGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0gICAgZG91YmxlVG9TdHJp
bmdJbkphdmFTY3JpcHRGb3JtYXQobnVtYmVyLCBidWZmZXIsICZsZW5ndGgpOwotICAgIHJldHVy
biBTdHJpbmcoYnVmZmVyLCBsZW5ndGgpOworICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZl
cjsKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlciwgbnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZm
ZXIpKTsKIH0KIAogYm9vbCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjb25zdCBTdHJpbmcm
IHNyYywgZG91YmxlKiBvdXQpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTg2NSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA4LTIz
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgNDQ0ODcgLSBDbGVhbiB1
cCBOdW1iZXJQcm90b3R5cGUuY3BwCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHNvbWUg
bGF5b3V0IHRlc3QgcmVzdWx0cyAtIGluIGFsbCB0aGVzZSBjYXNlcyB3ZSB3ZXJlCisgICAgICAg
IG5vdCBwcmV2aW91c2x5IGFjY3VyYXRlIHRvIHNwZWMgZGVmaW5lZCBiZWhhdmlvdXIsIGFuZCB3
ZSBhcmUgc3RpbGwgbm90CisgICAgICAgIC0gYnV0IG92ZXJhbGwgdGhpcyBjaGFuZ2VzIHJlZHVj
ZXMgdGhlIG92ZXJhbGwgbWFnbml0dWRlIG9mIGVycm9yIGR1ZSB0bworICAgICAgICByb3VuZGlu
ZyBkaWZmZXJlbmNlcy4gVGhlIHVuZGVybHlpbmcgcHJvYmxlbSBpcyB0aGF0IHdlIHNob3VsZCBi
ZSB1c2luZworICAgICAgICBkdG9hIHRvIGdlbmVyYXRlIHJlc3VsdHMgdG8gYSBzcGVjaWZpZWQg
YWNjdXJhY3ksIHJhdGhlciB0aGFuIHJlbHlpbmcgb24KKyAgICAgICAgcHJlLXJvdW5kaW5nIHRo
ZSBpbnB1dCB2YWx1ZXMuIFdlIHNob3VsZCBsb29rIGF0IHJlZW5hYmxpbmcgb3VyIGR0b2EKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24gdG8gd29yayBpbiB0aGlzIGZhc2hpb24gYXMgYSBzZXBhcmF0
ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2pzL2tkZS9OdW1iZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvanMva2RlL3NjcmlwdC10ZXN0cy9OdW1iZXIuanM6CisgICAgICAgICog
ZmFzdC9qcy9udW1iZXItdG9FeHBvbmVudGlhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9qcy9udW1iZXItdG9maXhlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9udW1i
ZXItdG9wcmVjaXNpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL251bWJlci10b0V4cG9uZW50aWFsLmpzOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL251bWJlci10b2ZpeGVkLmpzOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL251
bWJlci10b3ByZWNpc2lvbi5qczoKKwogMjAxMC0wOC0yMyAgSGlyb25vcmkgQm9ubyAgPGhib25v
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVyLXRvRXhwb25lbnRpYWwtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2NTY0MikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvbnVtYmVy
LXRvRXhwb25lbnRpYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNywxMiArMTcs
MTIgQEAgUEFTUyAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgzKSBpcyAiMS4yMwogUEFTUyAoMTIz
LjQ1NikudG9FeHBvbmVudGlhbCg1KSBpcyAiMS4yMzQ1NmUrMiIKIFBBU1MgKDEyMy40NTYpLnRv
RXhwb25lbnRpYWwoNikgaXMgIjEuMjM0NTYwZSsyIgogRkFJTCAoMTIzLjQ1NikudG9FeHBvbmVu
dGlhbCgyMCkgc2hvdWxkIGJlIDEuMjM0NTYwMDAwMDAwMDAwMDMwNzBlKzIuIFdhcyAxLjIzNDU2
MDAwMDAwMDAwMDAwMDAwZSsyLgotRkFJTCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkgc2hv
dWxkIGJlIDEuMjM0NTYwMDAwMDAwMDAwMDMwNjk1ZSsyLiBUaHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogdG9FeHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmV0d2VlbiAwIGFuZCAyMAotRkFJ
TCAoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDApIHNob3VsZCBiZSAxLjIzNDU2MDAwMDAwMDAw
MDAzMDY5NTQ0NjE4NDgzNjMyODAyOTYzMjU2ODM1OTM3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlKzIuIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVy
cm9yOiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZXR3ZWVuIDAgYW5kIDIwCi1QQVNT
ICgxMjMuNDU2KS50b0V4cG9uZW50aWFsKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6
IHRvRXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdlZW4gMCBhbmQgMjAuCi1QQVNTICgx
MjMuNDU2KS50b0V4cG9uZW50aWFsKC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9F
eHBvbmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmV0d2VlbiAwIGFuZCAyMC4KLVBBU1MgKDEyMzQu
NTY3KS50b0V4cG9uZW50aWFsKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRv
RXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJldHdlZW4gMCBhbmQgMjAuCi1QQVNTICgxMjM0
LjU2NykudG9FeHBvbmVudGlhbChuZWdJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0
b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIz
LjQ1NikudG9FeHBvbmVudGlhbCgyMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhw
b25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMu
NDU2KS50b0V4cG9uZW50aWFsKDEwMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhw
b25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMu
NDU2KS50b0V4cG9uZW50aWFsKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRXhw
b25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjMu
NDU2KS50b0V4cG9uZW50aWFsKC0xKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9FeHBv
bmVudGlhbCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQu
NTY3KS50b0V4cG9uZW50aWFsKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRv
RXhwb25lbnRpYWwoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgx
MjM0LjU2NykudG9FeHBvbmVudGlhbChuZWdJbmYpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9y
OiB0b0V4cG9uZW50aWFsKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgogUEFT
UyBwb3NJbmYudG9FeHBvbmVudGlhbCgpIGlzICJJbmZpbml0eSIKIFBBU1MgbmVnSW5mLnRvRXhw
b25lbnRpYWwoKSBpcyAiLUluZmluaXR5IgogUEFTUyBuYW4udG9FeHBvbmVudGlhbCgpIGlzICJO
YU4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b2ZpeGVkLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10
b2ZpeGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTYgKzQyLDE2IEBAIFBB
U1MgKDEyMzQuNTY3KS50b0ZpeGVkKDIpIGlzICIxMjM0LjU3IgogUEFTUyAoMTIzNC41NjcpLnRv
Rml4ZWQoMi45KSBpcyAiMTIzNC41NyIKIFBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDUpIGlzICIx
MjM0LjU2NzAwIgogRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoMjApIHNob3VsZCBiZSAxMjM0LjU2
NzAwMDAwMDAwMDAwNzI3NTk2LiBXYXMgMTIzNC41NjcwMDAwMDAwMDAwMDAwMDAwMC4KLUZBSUwg
KDEyMzQuNTY3KS50b0ZpeGVkKDIxKSBzaG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5
NTguIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgZGlnaXRzIGFyZ3VtZW50
IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoMTAwKSBz
aG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
LiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1bWVudCBt
dXN0IGJlIGJldHdlZW4gMCBhbmQgMjAKLVBBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKDEwMSkgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBi
ZSBiZXR3ZWVuIDAgYW5kIDIwLgotRkFJTCAoMTIzNC41NjcpLnRvRml4ZWQoLTEpIHNob3VsZCBi
ZSAxMjMwLiBUaHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGRpZ2l0cyBhcmd1
bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAKLUZBSUwgKDEyMzQuNTY3KS50b0ZpeGVkKC00
KSBzaG91bGQgYmUgMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBkaWdp
dHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwCi1GQUlMICgxMjM0LjU2NykudG9G
aXhlZCgtNSkgc2hvdWxkIGJlIDAuIFRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVk
KCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMAotRkFJTCAoMTIzNC41
NjcpLnRvRml4ZWQoLTIwKSBzaG91bGQgYmUgMC4gVGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6
IHRvRml4ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwCi1QQVNT
ICgxMjM0LjU2NykudG9GaXhlZCgtMjEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0Zp
eGVkKCkgZGlnaXRzIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KLVBBU1MgKDEy
MzQuNTY3KS50b0ZpeGVkKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4
ZWQoKSBkaWdpdHMgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgotUEFTUyAoMTIz
NC41NjcpLnRvRml4ZWQobmVnSW5mKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhl
ZCgpIGRpZ2l0cyBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0
LjU2NykudG9GaXhlZCgyMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBh
cmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhl
ZCgxMDApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVz
dCBiZSBiZXR3ZWVuIDAgYW5kIDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQoMTAxKSB0aHJl
dyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2Vl
biAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC0xKSB0aHJldyBleGNlcHRpb24g
UmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4K
K1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKC00KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
dG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQu
NTY3KS50b0ZpeGVkKC01KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFy
Z3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVk
KC0yMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0
IGJlIGJldHdlZW4gMCBhbmQgMjAuCitQQVNTICgxMjM0LjU2NykudG9GaXhlZCgtMjEpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b0ZpeGVkKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVu
IDAgYW5kIDIwLgorUEFTUyAoMTIzNC41NjcpLnRvRml4ZWQocG9zSW5mKSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogdG9GaXhlZCgpIGFyZ3VtZW50IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAy
MC4KK1BBU1MgKDEyMzQuNTY3KS50b0ZpeGVkKG5lZ0luZikgdGhyZXcgZXhjZXB0aW9uIFJhbmdl
RXJyb3I6IHRvRml4ZWQoKSBhcmd1bWVudCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAuCiBQQVNT
IHBvc0luZi50b0ZpeGVkKCkgaXMgIkluZmluaXR5IgogUEFTUyBuZWdJbmYudG9GaXhlZCgpIGlz
ICItSW5maW5pdHkiCiBQQVNTIG5hbi50b0ZpeGVkKCkgaXMgIk5hTiIKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvbnVtYmVyLXRvcHJlY2lzaW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2pzL251bWJlci10b3ByZWNpc2lvbi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9udW1iZXItdG9wcmVjaXNpb24t
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBAIFBBU1MgKDEyMzQu
NTY3KS50b1ByZWNpc2lvbigyKSBpcyAiMS4yZSsKIFBBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lv
bigyLjkpIGlzICIxLjJlKzMiCiBQQVNTICgxMjM0LjU2NykudG9QcmVjaXNpb24oNSkgaXMgIjEy
MzQuNiIKIEZBSUwgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyMSkgc2hvdWxkIGJlIDEyMzQuNTY3
MDAwMDAwMDAwMDA3MjguIFdhcyAxMjM0LjU2NzAwMDAwMDAwMDAwMDAwLgotRkFJTCAoMTIzNC41
NjcpLnRvUHJlY2lzaW9uKDIyKSBzaG91bGQgYmUgMTIzNC41NjcwMDAwMDAwMDAwMDcyNzYuIFRo
cmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiB0b1ByZWNpc2lvbigpIGFyZ3VtZW50IG11c3QgYmUg
YmV0d2VlbiAxIGFuZCAyMQotRkFJTCAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMCkgc2hvdWxk
IGJlIDEyMzQuNTY3MDAwMDAwMDAwMDA3Mjc1OTU3NjE0MTgzNDI1OTAzMzIwMzEyNTAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLiBUaHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogdG9QcmVjaXNpb24oKSBhcmd1bWVudCBtdXN0IGJlIGJldHdl
ZW4gMSBhbmQgMjEKK1BBU1MgKDEyMzQuNTY3KS50b1ByZWNpc2lvbigyMikgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEg
YW5kIDIxLgorUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMCkgdGhyZXcgZXhjZXB0aW9u
IFJhbmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5k
IDIxLgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMSkgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIx
LgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKHBvc0luZikgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIx
LgogUEFTUyAoMTIzNC41NjcpLnRvUHJlY2lzaW9uKG5lZ0luZikgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IHRvUHJlY2lzaW9uKCkgYXJndW1lbnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIx
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvTnVtYmVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9OdW1iZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA2NTY0MikKKysrIExheW91dFRlc3RzL2Zhc3QvanMva2RlL051bWJlci1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4OCwxMSArMTg4LDExIEBAIFBBU1MgTnVtYmVyKDEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0UKIFBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2
Nzg5MDEyKS50b0V4cG9uZW50aWFsKDEzKSBpcyAiMS4yMzQ1Njc4OTAxMjM1ZSsyIgogUEFTUyBO
dW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTQpIGlzICIxLjIz
NDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRv
RXhwb25lbnRpYWwoMTUpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1N2UrMiIKLVBBU1MgTnVtYmVyKDEy
My40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSBpcyAiMS4yMzQ1Njc4OTAx
MjM0NTcwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25l
bnRpYWwoMTcpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NzAwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1
Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTgpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1
NzEwMGUrMiIKLVBBU1MgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDE5KSBpcyAiMS4yMzQ1Njc4OTAxMjM0NTcwMDAwZSsyIgotUEFTUyBOdW1iZXIoMTIzLjQ1
Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIGlzICIxLjIzNDU2Nzg5MDEyMzQ1
NzAwMDAwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25l
bnRpYWwoMTYpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1NjhlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2
Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykgaXMgIjEuMjM0NTY3ODkwMTIzNDU2
ODBlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgxOCkgaXMgIjEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyIgorUEFTUyBOdW1iZXIoMTIzLjQ1Njc4
OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTkpIGlzICIxLjIzNDU2Nzg5MDEyMzQ1Njcw
MDBlKzIiCitQQVNTIE51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlh
bCgyMCkgaXMgIjEuMjM0NTY3ODkwMTIzNDU2ODAwMDBlKzIiCiBQQVNTIHRyeSB7IE51bWJlcigx
MjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMSkgfSBjYXRjaCAoZSkgeyBT
dHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAwOyB9IGlzIHRydWUKIFBBU1MgTnVtYmVyKC0x
MjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgpIGlzICItMS4yMzQ1Njc4OTAx
MjM0NTY4ZSsyIgogUEFTUyB0cnkgeyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKC0xKSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScp
ID49IDA7IH0gaXMgdHJ1ZQpAQCAtMjEyLDExICsyMTIsMTEgQEAgUEFTUyBOdW1iZXIoLTEyMy40
NTY3ODkwMTIzNDU2Nzg5MDEyKS50bwogUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDEzKSBpcyAiLTEuMjM0NTY3ODkwMTIzNWUrMiIKIFBBU1MgTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNCkgaXMgIi0xLjIz
NDU2Nzg5MDEyMzQ2ZSsyIgogUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE1KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3ZSsyIgotUEFTUyBOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSBpcyAiLTEuMjM0NTY3
ODkwMTIzNDU3MGUrMiIKLVBBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxNykgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NzAwZSsyIgotUEFTUyBOdW1iZXIo
LTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSBpcyAiLTEuMjM0NTY3
ODkwMTIzNDU3MTAwZSsyIgotUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50
b0V4cG9uZW50aWFsKDE5KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU3MDAwMGUrMiIKLVBBU1MgTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIi0xLjIz
NDU2Nzg5MDEyMzQ1NzAwMDAwZSsyIgorUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDE2KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU2OGUrMiIKK1BBU1Mg
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykgaXMgIi0x
LjIzNDU2Nzg5MDEyMzQ1NjgwZSsyIgorUEFTUyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDE4KSBpcyAiLTEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyIgorUEFT
UyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSBpcyAi
LTEuMjM0NTY3ODkwMTIzNDU2NzAwMGUrMiIKK1BBU1MgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1
Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkgaXMgIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsy
IgogUEFTUyB0cnkgeyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50
aWFsKDIxKSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49IDA7IH0g
aXMgdHJ1ZQogUEFTUyBOdW1iZXIoLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDEpLnRvRXhwb25lbnRp
YWwoKSBpcyAiMWUtMjIiCiBQQVNTIE51bWJlciguMDAwMDAwMDAwMDAwMDAwMDAwMDAxMikudG9F
eHBvbmVudGlhbCgpIGlzICIxLjJlLTIxIgpAQCAtMzQ4LDExICszNDgsMTEgQEAgUEFTUyBOdW1i
ZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMwogUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNCkgaXMgIjAuMDAwMTIzNDU2Nzg5MDEy
MzUiCiBQQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDE1KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDYiCiBQQVNTIE51bWJlcigwLjAwMDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE2KSBpcyAiMC4wMDAxMjM0NTY3ODkw
MTIzNDU3IgotUEFTUyBOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxNykgaXMgIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgiCi1QQVNTIE51bWJlcigwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSBpcyAiMC4wMDAxMjM0
NTY3ODkwMTIzNDU2ODAiCi1QQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwIgotUEFTUyBO
dW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkgaXMg
IjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcwMDAiCi1QQVNTIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBpcyAiMC4wMDAxMjM0NTY3ODkwMTIzNDU2
ODAwMDAiCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJl
Y2lzaW9uKDE3KSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2Ny4gV2FzIDAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjguCitGQUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDUpLnRvUHJlY2lzaW9uKDE4KSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEuIFdh
cyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY2MC4KK0ZBSUwgTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTkpIHNob3VsZCBiZSAwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3MTMuIFdhcyAwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDAuCitGQUlMIE51bWJlcigwLjAw
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBzaG91bGQgYmUgMC4w
MDAxMjM0NTY3ODkwMTIzNDU2NzEzMC4gV2FzIDAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjUwMDAuCitG
QUlMIE51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIx
KSBzaG91bGQgYmUgMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEyOTcuIFdhcyAwLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3MDAwMC4KIFBBU1MgTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50
b1ByZWNpc2lvbigpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjciCiBQQVNTIE51bWJlcigxMjM0NS42
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMSkgaXMgIjFlKzQiCiBQQVNTIE51bWJl
cigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMikgaXMgIjEuMmUrNCIK
QEAgLTM3Myw3ICszNzMsNyBAQCBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkuCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24o
MTcpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjgiCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1
Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjYwIgogUEFT
UyBOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAi
MTIzNDUuNjc4OTAxMjM0NTY4MDAiCi1QQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAx
MjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjUwMDAiCitQQVNTIE51
bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICIxMjM0
NS42Nzg5MDEyMzQ1NjcwMDAiCiBQQVNTIE51bWJlcigxMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMjEpIGlzICIxMjM0NS42Nzg5MDEyMzQ1NjcwMDAwIgogUEFTUyBOdW1i
ZXIoLS4wMDAwMDAwMDEyMzQ1KS50b1ByZWNpc2lvbigyKSBpcyAiLTEuMmUtOSIKIFBBU1MgTnVt
YmVyKC0uMDAwMDAwMDEyMzQ1KS50b1ByZWNpc2lvbigyKSBpcyAiLTEuMmUtOCIKQEAgLTQwOCwx
MSArNDA4LDExIEBAIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIKIFBB
U1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE0
KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzUiCiBQQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNSkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0
NiIKIFBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lz
aW9uKDE2KSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NyIKLVBBU1MgTnVtYmVyKC0wLjAwMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBpcyAiLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1NjgiCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigxOCkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MCIKLVBBU1MgTnVt
YmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSBpcyAi
LTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMCIKLVBBU1MgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBpcyAiLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1
NjcwMDAiCi1QQVNTIE51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigyMSkgaXMgIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4MDAwMCIKK0ZBSUwgTnVtYmVy
KC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSBzaG91bGQg
YmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcuIFdhcyAtMC4wMDAxMjM0NTY3ODkwMTIzNDU2OC4K
K0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9u
KDE4KSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxLiBXYXMgLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1NjYwLgorRkFJTCBOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMTkpIHNob3VsZCBiZSAtMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzLiBX
YXMgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMC4KK0ZBSUwgTnVtYmVyKC0wLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSBzaG91bGQgYmUgLTAuMDAwMTIzNDU2
Nzg5MDEyMzQ1NjcxMzAuIFdhcyAtMC4wMDAxMjM0NTY3ODkwMTIzNDU2NTAwMC4KK0ZBSUwgTnVt
YmVyKC0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBzaG91
bGQgYmUgLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMjk3LiBXYXMgLTAuMDAwMTIzNDU2Nzg5MDEy
MzQ1NjcwMDAwLgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY3IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3
ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxKSBpcyAiLTFlKzQiCiBQQVNTIE51bWJl
cigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIpIGlzICItMS4yZSs0
IgpAQCAtNDMzLDcgKzQzMyw3IEBAIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAx
MjM0NSkKIFBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNp
b24oMTcpIGlzICItMTIzNDUuNjc4OTAxMjM0NTY4IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkw
MTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjYw
IgogUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
OSkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjgwMCIKLVBBU1MgTnVtYmVyKC0xMjM0NS42Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjApIGlzICItMTIzNDUuNjc4OTAxMjM0NTY1MDAw
IgorUEFTUyBOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MCkgaXMgIi0xMjM0NS42Nzg5MDEyMzQ1NjcwMDAiCiBQQVNTIE51bWJlcigtMTIzNDUuNjc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSBpcyAiLTEyMzQ1LjY3ODkwMTIzNDU2NzAw
MDAiCiBQQVNTIE51bWJlcigwKS50b1ByZWNpc2lvbigpIGlzICIwIgogUEFTUyBOdW1iZXIoMCku
dG9QcmVjaXNpb24oMSkgaXMgIjAiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9zY3Jp
cHQtdGVzdHMvTnVtYmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMva2Rl
L3NjcmlwdC10ZXN0cy9OdW1iZXIuanMJKHJldmlzaW9uIDY1NjQyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9rZGUvc2NyaXB0LXRlc3RzL051bWJlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjAz
LDExICsyMDMsMTEgQEAgc2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMgog
c2hvdWxkQmUoIk51bWJlcigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgx
MykiLCJcIjEuMjM0NTY3ODkwMTIzNWUrMlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE0KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NmUr
MlwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE1KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTdlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJl
cigxMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNikiLCJcIjEuMjM0NTY3
ODkwMTIzNDU3MGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5
MDEyKS50b0V4cG9uZW50aWFsKDE3KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTcwMGUrMlwiIik7Ci1z
aG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4
KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTcxMDBlKzJcIiIpOwotc2hvdWxkQmUoIk51bWJlcigxMjMu
NDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxOSkiLCJcIjEuMjM0NTY3ODkwMTIz
NDU3MDAwMGUrMlwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEy
KS50b0V4cG9uZW50aWFsKDIwKSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTcwMDAwMGUrMlwiIik7Citz
aG91bGRCZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2
KSIsIlwiMS4yMzQ1Njc4OTAxMjM0NTY4ZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1
Njc4OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMTcpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1
NjgwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4OTAxMjM0NTY3ODkwMTIpLnRv
RXhwb25lbnRpYWwoMTgpIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1NjgwMGUrMlwiIik7CitzaG91bGRC
ZSgiTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIsIlwi
MS4yMzQ1Njc4OTAxMjM0NTY3MDAwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzLjQ1Njc4
OTAxMjM0NTY3ODkwMTIpLnRvRXhwb25lbnRpYWwoMjApIiwiXCIxLjIzNDU2Nzg5MDEyMzQ1Njgw
MDAwZSsyXCIiKTsKIHNob3VsZEJlVHJ1ZSgidHJ5IHsgTnVtYmVyKDEyMy40NTY3ODkwMTIzNDU2
Nzg5MDEyKS50b0V4cG9uZW50aWFsKDIxKSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRleE9m
KCdSYW5nZScpID49IDA7IH0iKTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2
Nzg5MDEyKS50b0V4cG9uZW50aWFsKCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjhlKzJcIiIpOwog
c2hvdWxkQmVUcnVlKCJ0cnkgeyBOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4
cG9uZW50aWFsKC0xKSB9IGNhdGNoIChlKSB7IFN0cmluZyhlKS5pbmRleE9mKCdSYW5nZScpID49
IDA7IH0iKTsKQEAgLTIyNywxMSArMjI3LDExIEBAIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEKIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEy
KS50b0V4cG9uZW50aWFsKDEzKSIsIlwiLTEuMjM0NTY3ODkwMTIzNWUrMlwiIik7CiBzaG91bGRC
ZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNCkiLCJc
Ii0xLjIzNDU2Nzg5MDEyMzQ2ZSsyXCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkw
MTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE1KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3ZSsy
XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE2KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MGUrMlwiIik7Ci1zaG91bGRCZSgiTnVt
YmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgxNykiLCJcIi0xLjIz
NDU2Nzg5MDEyMzQ1NzAwZSsyXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIz
NDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MTAwZSsy
XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9u
ZW50aWFsKDE5KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU3MDAwMGUrMlwiIik7Ci1zaG91bGRCZSgi
TnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBvbmVudGlhbCgyMCkiLCJcIi0x
LjIzNDU2Nzg5MDEyMzQ1NzAwMDAwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE2KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2
OGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9F
eHBvbmVudGlhbCgxNykiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwZSsyXCIiKTsKK3Nob3VsZEJl
KCJOdW1iZXIoLTEyMy40NTY3ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE4KSIsIlwi
LTEuMjM0NTY3ODkwMTIzNDU2ODAwZSsyXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTEyMy40NTY3
ODkwMTIzNDU2Nzg5MDEyKS50b0V4cG9uZW50aWFsKDE5KSIsIlwiLTEuMjM0NTY3ODkwMTIzNDU2
NzAwMGUrMlwiIik7CitzaG91bGRCZSgiTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMiku
dG9FeHBvbmVudGlhbCgyMCkiLCJcIi0xLjIzNDU2Nzg5MDEyMzQ1NjgwMDAwZSsyXCIiKTsKIHNo
b3VsZEJlVHJ1ZSgidHJ5IHsgTnVtYmVyKC0xMjMuNDU2Nzg5MDEyMzQ1Njc4OTAxMikudG9FeHBv
bmVudGlhbCgyMSkgfSBjYXRjaCAoZSkgeyBTdHJpbmcoZSkuaW5kZXhPZignUmFuZ2UnKSA+PSAw
OyB9Iik7CiBzaG91bGRCZSgiTnVtYmVyKC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAxKS50b0V4cG9u
ZW50aWFsKCkiLCJcIjFlLTIyXCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMTIpLnRvRXhwb25lbnRpYWwoKSIsIlwiMS4yZS0yMVwiIik7CkBAIC0zNjQsMTEgKzM2
NCwxMSBAQCBzaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4CiBzaG91bGRC
ZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTQp
IiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM1XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNSkiLCJcIjAuMDAwMTIzNDU2Nzg5
MDEyMzQ2XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy
MzQ1KS50b1ByZWNpc2lvbigxNikiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1N1wiIik7Ci1zaG91
bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24o
MTcpIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY4XCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMC4w
MDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOCkiLCJcIjAuMDAwMTIz
NDU2Nzg5MDEyMzQ1NjgwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njgw
MFwiIik7Ci1zaG91bGRCZSgiTnVtYmVyKDAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSku
dG9QcmVjaXNpb24oMjApIiwiXCIwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MDAwXCIiKTsKLXNob3Vs
ZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MSkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjgwMDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIo
MC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIjAuMDAw
MTIzNDU2Nzg5MDEyMzQ1NjdcIiIpOworc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2
NzFcIiIpOworc2hvdWxkQmUoIk51bWJlcigwLjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUp
LnRvUHJlY2lzaW9uKDE5KSIsIlwiMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEzXCIiKTsKK3Nob3Vs
ZEJlKCJOdW1iZXIoMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigy
MCkiLCJcIjAuMDAwMTIzNDU2Nzg5MDEyMzQ1NjcxMzBcIiIpOworc2hvdWxkQmUoIk51bWJlcigw
LjAwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiMC4wMDAx
MjM0NTY3ODkwMTIzNDU2NzEyOTdcIiIpOwogc2hvdWxkQmUoIk51bWJlcigxMjM0NS42Nzg5MDEy
MzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3XCIiKTsK
IHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9u
KDEpIiwiXCIxZSs0XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDIpIiwiXCIxLjJlKzRcIiIpOwpAQCAtMzg5LDcgKzM4OSw3IEBA
IHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIKIHNob3VsZEJlKCJOdW1i
ZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE3KSIsIlwiMTIzNDUu
Njc4OTAxMjM0NTY4XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkw
MTIzNDUpLnRvUHJlY2lzaW9uKDE4KSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY2MFwiIik7CiBzaG91
bGRCZSgiTnVtYmVyKDEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSki
LCJcIjEyMzQ1LjY3ODkwMTIzNDU2ODAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY1
MDAwXCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRv
UHJlY2lzaW9uKDIwKSIsIlwiMTIzNDUuNjc4OTAxMjM0NTY3MDAwXCIiKTsKIHNob3VsZEJlKCJO
dW1iZXIoMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIxKSIsIlwiMTIz
NDUuNjc4OTAxMjM0NTY3MDAwMFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0uMDAwMDAwMDAxMjM0
NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJlLTlcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtLjAw
MDAwMDAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJcIi0xLjJlLThcIiIpOwpAQCAtNDI0LDExICs0
MjQsMTEgQEAgc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nwogc2hvdWxk
QmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigx
NCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM1XCIiKTsKIHNob3VsZEJlKCJOdW1iZXIoLTAuMDAw
MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTUpIiwiXCItMC4wMDAxMjM0
NTY3ODkwMTIzNDZcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxNikiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTdcIiIp
Owotc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1By
ZWNpc2lvbigxNykiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY4XCIiKTsKLXNob3VsZEJlKCJO
dW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIiwi
XCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODBcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMC4wMDAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIi0wLjAwMDEyMzQ1
Njc4OTAxMjM0NTY4MDBcIiIpOwotc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3
MDAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSkudG9QcmVjaXNpb24oMjEpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2ODAwMDBcIiIpOwor
c2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNp
c2lvbigxNykiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3XCIiKTsKK3Nob3VsZEJlKCJOdW1i
ZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMTgpIiwiXCIt
MC4wMDAxMjM0NTY3ODkwMTIzNDU2NzFcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigxOSkiLCJcIi0wLjAwMDEyMzQ1Njc4
OTAxMjM0NTY3MTNcIiIpOworc2hvdWxkQmUoIk51bWJlcigtMC4wMDAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1KS50b1ByZWNpc2lvbigyMCkiLCJcIi0wLjAwMDEyMzQ1Njc4OTAxMjM0NTY3MTMw
XCIiKTsKK3Nob3VsZEJlKCJOdW1iZXIoLTAuMDAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSku
dG9QcmVjaXNpb24oMjEpIiwiXCItMC4wMDAxMjM0NTY3ODkwMTIzNDU2NzEyOTdcIiIpOwogc2hv
dWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKCki
LCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjdcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUuNjc4
OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDEpIiwiXCItMWUrNFwiIik7CiBzaG91bGRC
ZSgiTnVtYmVyKC0xMjM0NS42Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMikiLCJc
Ii0xLjJlKzRcIiIpOwpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1
LjY3ODkwMTIzNDU2Nzg5MDEKIHNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5
MDEyMzQ1KS50b1ByZWNpc2lvbigxNykiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjhcIiIpOwogc2hv
dWxkQmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE4
KSIsIlwiLTEyMzQ1LjY3ODkwMTIzNDU2NjBcIiIpOwogc2hvdWxkQmUoIk51bWJlcigtMTIzNDUu
Njc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDE5KSIsIlwiLTEyMzQ1LjY3ODkwMTIz
NDU2ODAwXCIiKTsKLXNob3VsZEJlKCJOdW1iZXIoLTEyMzQ1LjY3ODkwMTIzNDU2Nzg5MDEyMzQ1
KS50b1ByZWNpc2lvbigyMCkiLCJcIi0xMjM0NS42Nzg5MDEyMzQ1NjUwMDBcIiIpOworc2hvdWxk
QmUoIk51bWJlcigtMTIzNDUuNjc4OTAxMjM0NTY3ODkwMTIzNDUpLnRvUHJlY2lzaW9uKDIwKSIs
IlwiLTEyMzQ1LjY3ODkwMTIzNDU2NzAwMFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKC0xMjM0NS42
Nzg5MDEyMzQ1Njc4OTAxMjM0NSkudG9QcmVjaXNpb24oMjEpIiwiXCItMTIzNDUuNjc4OTAxMjM0
NTY3MDAwMFwiIik7CiBzaG91bGRCZSgiTnVtYmVyKDApLnRvUHJlY2lzaW9uKCkiLCJcIjBcIiIp
Owogc2hvdWxkQmUoIk51bWJlcigwKS50b1ByZWNpc2lvbigxKSIsIlwiMFwiIik7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9F
eHBvbmVudGlhbC5qcwkocmV2aXNpb24gNjU2NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9udW1iZXItdG9FeHBvbmVudGlhbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjks
OCArMjksOCBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjMuNDU2KS50b0V4cG9uCiBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIigxMjMuNDU2KS50b0V4cG9uZW50aWFsKDIwKSIsICIxLjIzNDU2
MDAwMDAwMDAwMDAzMDcwZSsyIik7CiAKIC8vIFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9u
IHZhbHVlcyAwIHRvIDEwMCwgd2Ugb25seSBhbGxvdyAwIHRvIDIwIGN1cnJlbnRseQotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCIoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSkiLCAiMS4yMzQ1NjAw
MDAwMDAwMDAwMzA2OTVlKzIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMy40NTYpLnRv
RXhwb25lbnRpYWwoMTAwKSIsICIxLjIzNDU2MDAwMDAwMDAwMDAzMDY5NTQ0NjE4NDgzNjMyODAy
OTYzMjU2ODM1OTM3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDBlKzIiKTsKK3Nob3VsZFRocm93KCIoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgyMSki
KTsKK3Nob3VsZFRocm93KCIoMTIzLjQ1NikudG9FeHBvbmVudGlhbCgxMDApIik7CiBzaG91bGRU
aHJvdygiKDEyMy40NTYpLnRvRXhwb25lbnRpYWwoMTAxKSIpOwogc2hvdWxkVGhyb3coIigxMjMu
NDU2KS50b0V4cG9uZW50aWFsKC0xKSIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qcwkocmV2aXNpb24gNjU2NDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9maXhlZC5qcwkod29y
a2luZyBjb3B5KQpAQCAtNjEsMTQgKzYxLDE0IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEy
MzQuNTY3KS50b0ZpeGUKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVk
KDUpIiwgIjEyMzQuNTY3MDAiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50
b0ZpeGVkKDIwKSIsICIxMjM0LjU2NzAwMDAwMDAwMDAwNzI3NTk2Iik7CiAKLS8vIFNwaWRlck1v
bmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAtMjAgdG8gMTAwLCB3ZSBvbmx5IGFsbG93IDAg
dG8gMjAgY3VycmVudGx5Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhl
ZCgyMSkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5NTgiKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKDEwMCkiLCAiMTIzNC41NjcwMDAwMDAwMDAwMDcyNzU5
NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisvLyBTcGlkZXJNb25rZXkgYWxsb3dzIHByZWNp
c2lvbiB2YWx1ZXMgLTIwIHRvIDEwMCwgdGhlIHNwZWMgb25seSBhbGxvd3MgMCB0byAyMAorc2hv
dWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgyMSkiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41
NjcpLnRvRml4ZWQoMTAwKSIpOwogc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgxMDEp
Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCgtMSkiLCAiMTIz
MCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvRml4ZWQoLTQpIiwgIjAi
KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiKDEyMzQuNTY3KS50b0ZpeGVkKC01KSIsICIwIik7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2NykudG9GaXhlZCgtMjApIiwgIjAiKTsK
K3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoLTEpIik7CitzaG91bGRUaHJvdygiKDEy
MzQuNTY3KS50b0ZpeGVkKC00KSIpOworc2hvdWxkVGhyb3coIigxMjM0LjU2NykudG9GaXhlZCgt
NSkiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvRml4ZWQoLTIwKSIpOwogc2hvdWxkVGhy
b3coIigxMjM0LjU2NykudG9GaXhlZCgtMjEpIik7CiAKIHNob3VsZFRocm93KCIoMTIzNC41Njcp
LnRvRml4ZWQocG9zSW5mKSIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvbnVtYmVyLXRvcHJlY2lzaW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL251bWJlci10b3ByZWNpc2lvbi5qcwkocmV2aXNpb24gNjU2NDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9udW1iZXItdG9wcmVjaXNpb24uanMJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDkgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIo
MTIzNC41NjcpLnRvUHJlYwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJl
Y2lzaW9uKDIuOSkiLCAiMS4yZSszIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigxMjM0LjU2
NykudG9QcmVjaXNpb24oNSkiLCAiMTIzNC42Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIigx
MjM0LjU2NykudG9QcmVjaXNpb24oMjEpIiwgIjEyMzQuNTY3MDAwMDAwMDAwMDA3MjgiKTsKLS8v
IFNwaWRlck1vbmtleSBhbGxvd3MgcHJlY2lzaW9uIHZhbHVlcyAxIHRvIDEwMCwgd2Ugb25seSBh
bGxvdyAxIHRvIDIxIGN1cnJlbnRseQotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoMTIzNC41Njcp
LnRvUHJlY2lzaW9uKDIyKSIsICIxMjM0LjU2NzAwMDAwMDAwMDAwNzI3NiIpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMCkiLCAiMTIzNC41NjcwMDAw
MDAwMDAwMDcyNzU5NTc2MTQxODM0MjU5MDMzMjAzMTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKy8vIFNwaWRlck1vbmtleSBhbGxv
d3MgcHJlY2lzaW9uIHZhbHVlcyAxIHRvIDEwMCwgd2UgaW1wbGVtZW50IHRoZSBzcGVjIGFuZCBv
bmx5IGFsbG93IDEgdG8gMjEuCitzaG91bGRUaHJvdygiKDEyMzQuNTY3KS50b1ByZWNpc2lvbigy
MikiKTsKK3Nob3VsZFRocm93KCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMCkiKTsKIHNob3Vs
ZFRocm93KCIoMTIzNC41NjcpLnRvUHJlY2lzaW9uKDEwMSkiKTsKIAogc2hvdWxkVGhyb3coIigx
MjM0LjU2NykudG9QcmVjaXNpb24ocG9zSW5mKSIpOwo=
</data>
<flag name="review"
          id="54074"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>