<?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>56214</bug_id>
          
          <creation_ts>2011-03-11 12:52:30 -0800</creation_ts>
          <short_desc>Ensure all values are correctly tagged in the registerfile</short_desc>
          <delta_ts>2011-03-14 11:29:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          <dependson>56251</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366250</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-11 12:52:30 -0800</bug_when>
    <thetext>Ensure all values are correctly tagged in the registerfile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366261</commentid>
    <comment_count>1</comment_count>
      <attachid>85516</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-11 13:07:17 -0800</bug_when>
    <thetext>Created attachment 85516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366273</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-11 13:27:34 -0800</bug_when>
    <thetext>Attachment 85516 did not build on qt:
Build output: http://queues.webkit.org/results/8132369</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366279</commentid>
    <comment_count>3</comment_count>
      <attachid>85520</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-11 13:34:36 -0800</bug_when>
    <thetext>Created attachment 85520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366293</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-11 13:50:22 -0800</bug_when>
    <thetext>Attachment 85516 did not build on win:
Build output: http://queues.webkit.org/results/8132382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366307</commentid>
    <comment_count>5</comment_count>
      <attachid>85520</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-03-11 14:09:06 -0800</bug_when>
    <thetext>Comment on attachment 85520
Patch

Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj change should probably be reverted?

&gt; *this = JSValue(reinterpret_cast&lt;JSCell*&gt;(activation));

These casts are all incorrect, they should be static_casts (reinterpret_cast is almost always the wrong cast when casting within a class hierarchy).
But can&apos;t you just delete all these overloaded= operators? - why doesn&apos;t the compiler just call the operator=(JSValue) automatically?

If we&apos;re going to access the two halves of the value like we do in JSVALUE32_64 it seems like we should have the IntValueDescriptor defined in JSValue, where it is for JSVALUE32_64 (better still, unify the two!)

r- for the reinterpreting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366346</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-11 15:00:29 -0800</bug_when>
    <thetext>Attachment 85520 did not build on win:
Build output: http://queues.webkit.org/results/8132411</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366356</commentid>
    <comment_count>7</comment_count>
      <attachid>85543</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-11 15:09:47 -0800</bug_when>
    <thetext>Created attachment 85543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366368</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-11 15:24:20 -0800</bug_when>
    <thetext>Attachment 85543 did not build on qt:
Build output: http://queues.webkit.org/results/8135475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366396</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-11 16:03:50 -0800</bug_when>
    <thetext>Attachment 85543 did not build on win:
Build output: http://queues.webkit.org/results/8133485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366399</commentid>
    <comment_count>10</comment_count>
      <attachid>85551</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-11 16:09:20 -0800</bug_when>
    <thetext>Created attachment 85551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366412</commentid>
    <comment_count>11</comment_count>
      <attachid>85551</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-03-11 16:30:28 -0800</bug_when>
    <thetext>Comment on attachment 85551
Patch

r is me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366477</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-11 19:01:02 -0800</bug_when>
    <thetext>Attachment 85551 did not build on win:
Build output: http://queues.webkit.org/results/8149539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366479</commentid>
    <comment_count>13</comment_count>
      <attachid>85551</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-11 19:12:25 -0800</bug_when>
    <thetext>Comment on attachment 85551
Patch

Clearing flags on attachment: 85551

Committed r80919: &lt;http://trac.webkit.org/changeset/80919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366480</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-11 19:12:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366487</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 19:38:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80919 might have broken Windows Release (Build) and Windows Debug (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366524</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 23:08:51 -0800</bug_when>
    <thetext>It seems like this change caused a Windows build failure:
http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/13160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366609</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-12 11:42:41 -0800</bug_when>
    <thetext>The commit queue is broken and needs to be disabled.  I&apos;ll re-land on monday with the windows fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366611</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-12 11:54:16 -0800</bug_when>
    <thetext>&gt; The commit queue is broken and needs to be disabled.

https://bugs.webkit.org/show_bug.cgi?id=56251#c5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367081</commentid>
    <comment_count>19</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-14 11:21:58 -0700</bug_when>
    <thetext>Committed r81040: &lt;http://trac.webkit.org/changeset/81040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367088</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-14 11:29:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81040 might have broken Windows Release (Build) and Windows Debug (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85516</attachid>
            <date>2011-03-11 13:07:17 -0800</date>
            <delta_ts>2011-03-11 13:34:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56214-20110311130716.patch</filename>
            <type>text/plain</type>
            <size>30544</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
YTBhNmQ3ZTY1OWI2ZTg5YzZhYTZjOTVlNmQ2OTg3ZGYyNTJmMzcuLmJkZTRlNmI3NWY3ZjIxZmQ2
MjlmYTUwOWYzOWFjMzQyMzBmODBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDExLTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFs
bCB2YWx1ZXMgYXJlIGNvcnJlY3RseSB0YWdnZWQgaW4gdGhlIHJlZ2lzdGVyZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTQKKworICAgICAg
ICBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgdGhhdCBhbGwgSlNDZWxsIHBvaW50ZXJzIHdyaXR0ZW4g
dG8KKyAgICAgICAgdGhlIHJlZ2lzdGVyZmlsZSBhcmUgY29ycmVjdGx5IHRhZ2dlZCBhcyBKU0Nl
bGxzLCBhbmQgcmVwbGFjZXMKKyAgICAgICAgcmF3IGludCB1c2FnZSB3aXRoIHRoZSBpbW1lZGlh
dGUgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgRm9yIHBlcmZvcm1hbmNlLCByZWdpc3RlciBw
cmVzc3VyZSwgYW5kIGdlbmVyYWwgc2FuZW5lc3MgcmVhc29ucworICAgICAgICBJJ3ZlIGFkZGVk
IGFic3RyYWN0aW9ucyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgdGFnCisgICAgICAgIGFu
ZCBwYXlsb2FkIG9mIGludGVnZXIgcmVnaXN0ZXJzIGRpcmVjdGx5IGZvciB0aGUgSlNWQUxVRTY0
CisgICAgICAgIGVuY29kaW5nLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OndpdGhJbnQpOgorICAgICAgICAoSlNDOjpSZWdpc3Rl
cjo6d2l0aENhbGxlZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoSlNDOjpSZWdpc3Rlcjo6aSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphY3RpdmF0
aW9uKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
UmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6
OnNjb3BlQ2hhaW4pOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2Fs
bC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJh
bWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAg
KEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSk6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxT
bG93Q2FzZSk6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRJ
bnRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X25leHRfcG5hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9hZF92YXJhcmdzKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb2FkX3ZhcmFyZ3MpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVz
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25leHRfcG5hbWUpOgorICAgICAgICAqIGpp
dC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6aW50UGF5
bG9hZEZvcik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IpOgorICAg
ICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6CisgICAgICAgIChKU0M6OlNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJldHVybkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRo
dW5rSklUOjpyZXR1cm5Eb3VibGUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklU
OjpyZXR1cm5JbnQzMik6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVy
bkpTQ2VsbCk6CisKIDIwMTEtMDMtMTEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzN2QxYzU3MDQ5YzI0NjJlYjk3MzQ4NjYxNDhmMTllZDRiZGIz
ZmJlLi45ZjhkNDlhNjk4NWNmZDlhMzVlM2Y1MTIyNTRjMzU3NmM1MzFiYzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0NCw2ICsyNTQ0LDcgQEAKIAkJCX07CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKKwkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCmluZGV4IDM5NDQ2NDI2ODA2MzY5NDU4NDkxMGFlMjdjYjY2Y2IwODFkNGRh
ZmMuLjY4MzRlZGEyOTQxYmFkMzVjOGMwOGRjNGFkNGQwNjYwMWE5ZDNkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03MywyOSArNzMsMjIg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFJlZ2lzdGVyIHdpdGhJbnQoaW50
MzJfdCBpKQogICAgICAgICB7Ci0gICAgICAgICAgICBSZWdpc3RlciByOwotICAgICAgICAgICAg
ci51LmkgPSBpOworICAgICAgICAgICAgUmVnaXN0ZXIgciA9IGpzTnVtYmVyKGkpOwogICAgICAg
ICAgICAgcmV0dXJuIHI7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgUmVnaXN0ZXIgd2l0
aENhbGxlZShKU09iamVjdCogY2FsbGVlKQogICAgICAgICB7CiAgICAgICAgICAgICBSZWdpc3Rl
ciByOwotICAgICAgICAgICAgci51LmZ1bmN0aW9uID0gY2FsbGVlOworICAgICAgICAgICAgciA9
IEpTVmFsdWUocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihjYWxsZWUpKTsKICAgICAgICAgICAg
IHJldHVybiByOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgogICAgICAgICB1bmlvbiB7Ci0g
ICAgICAgICAgICBpbnQzMl90IGk7CiAgICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSB2YWx1ZTsK
LQotICAgICAgICAgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uOwogICAgICAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKLSAg
ICAgICAgICAgIEpTT2JqZWN0KiBmdW5jdGlvbjsKLSAgICAgICAgICAgIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgICAgICAgICAgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW47CiAgICAgICAgICAgICBJbnN0cnVjdGlvbiogdlBDOwogICAgICAgICB9
IHU7CiAgICAgfTsKQEAgLTEzMyw3ICsxMjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEFM
V0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpvcGVyYXRvcj0oSlNBY3RpdmF0aW9uKiBh
Y3RpdmF0aW9uKQogICAgIHsKLSAgICAgICAgdS5hY3RpdmF0aW9uID0gYWN0aXZhdGlvbjsKKyAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oYWN0aXZhdGlv
bikpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCkBAIC0xNTcsMjQgKzE1MCwyNCBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVy
OjpvcGVyYXRvcj0oU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgewotICAgICAgICB1
LnNjb3BlQ2hhaW4gPSBzY29wZUNoYWluOworICAgICAgICAqdGhpcyA9IEpTVmFsdWUocmVpbnRl
cnByZXRfY2FzdDxKU0NlbGwqPihzY29wZUNoYWluKSk7CiAgICAgICAgIHJldHVybiAqdGhpczsK
ICAgICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVyJiBSZWdpc3Rlcjo6b3BlcmF0b3I9
KEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKQogICAgIHsKLSAg
ICAgICAgdS5wcm9wZXJ0eU5hbWVJdGVyYXRvciA9IHByb3BlcnR5TmFtZUl0ZXJhdG9yOworICAg
ICAgICAqdGhpcyA9IEpTVmFsdWUocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwcm9wZXJ0eU5h
bWVJdGVyYXRvcikpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgQUxXQVlT
X0lOTElORSBpbnQzMl90IFJlZ2lzdGVyOjppKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVy
biB1Lmk7CisgICAgICAgIHJldHVybiBqc1ZhbHVlKCkuYXNJbnQzMigpOwogICAgIH0KICAgICAK
ICAgICBBTFdBWVNfSU5MSU5FIEpTQWN0aXZhdGlvbiogUmVnaXN0ZXI6OmFjdGl2YXRpb24oKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYWN0aXZhdGlvbjsKKyAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8SlNBY3RpdmF0aW9uKj4oanNWYWx1ZSgpLmFzQ2VsbCgpKTsKICAg
ICB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSBDYWxsRnJhbWUqIFJlZ2lzdGVyOjpjYWxsRnJh
bWUoKSBjb25zdApAQCAtMTg5LDE3ICsxODIsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAg
ICAgQUxXQVlTX0lOTElORSBKU09iamVjdCogUmVnaXN0ZXI6OmZ1bmN0aW9uKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiB1LmZ1bmN0aW9uOworICAgICAgICBpZiAoIWpzVmFsdWUoKSkK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxK
U09iamVjdCo+KGpzVmFsdWUoKS5hc0NlbGwoKSk7CiAgICAgfQogICAgIAogICAgIEFMV0FZU19J
TkxJTkUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogUmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJh
dG9yKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB1LnByb3BlcnR5TmFtZUl0ZXJhdG9y
OworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
Kj4oanNWYWx1ZSgpLmFzQ2VsbCgpKTsKICAgICB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSBT
Y29wZUNoYWluTm9kZSogUmVnaXN0ZXI6OnNjb3BlQ2hhaW4oKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHUuc2NvcGVDaGFpbjsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U2NvcGVDaGFpbk5vZGUqPihqc1ZhbHVlKCkuYXNDZWxsKCkpOwogICAgIH0KICAgICAKICAgICBB
TFdBWVNfSU5MSU5FIEluc3RydWN0aW9uKiBSZWdpc3Rlcjo6dlBDKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCmluZGV4IGJlMDY1ZDA3MjM0NDRkYjlhNWZlZjY0YTEyOTdkZTM5MmJmMDcz
OWMuLmFlNjBjY2IyZDBhZjRhMGUzYmU0NjRmMTVjMDkzZWE3OTI5ZTJhYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaApAQCAtODUzLDYgKzg1Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2b2lkIGVtaXRJbml0UmVnaXN0ZXIodW5zaWduZWQgZHN0KTsKIAogICAgICAgICB2b2lkIGVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2Fs
bEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOworICAgICAgICB2b2lkIGVtaXRQdXRDZWxsVG9DYWxs
RnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
ckVudHJ5KTsKKyAgICAgICAgdm9pZCBlbWl0UHV0SW50VG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0
ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5KTsKICAgICAgICAg
dm9pZCBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIodm9pZCogdmFsdWUsIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOwogICAgICAgICB2b2lkIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50
cnkgZW50cnksIFJlZ2lzdGVySUQgdG8sIFJlZ2lzdGVySUQgZnJvbSA9IGNhbGxGcmFtZVJlZ2lz
dGVyKTsKICAgICAgICAgdm9pZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnksIFJlZ2lzdGVySUQgdG8sIFJlZ2lzdGVy
SUQgZnJvbSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwuY3BwCmluZGV4IDUyNGU1NzZiN2Y2OTljMDI5NWM2YjFhNWJiNjY4MDhjODE5YWRiNGMuLjll
YzRjYmNiNzZiMWIzYmZmZTQ3ODRjN2IzYzAyMjMwMDFjMmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDYWxsLmNwcApAQCAtNDgsMTAgKzQ4LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
CiB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJhbWUoKQogewotICAgIHN0
b3JlMzIocmVnVDEsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBs
b2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3Bl
Q2hhaW4pKSwgcmVnVDMpOyAvLyBuZXdTY29wZUNoYWluCi0gICAgc3RvcmVQdHIocmVnVDAsIEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwotICAgIHN0b3JlUHRyKHJlZ1QzLCBBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4gKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgLy8gcmVnVDAgaG9sZHMgY2FsbGVlLCBy
ZWdUMSBob2xkcyBhcmdDb3VudAorICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09G
RlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMyk7IC8vIHNjb3BlQ2hhaW4K
KyAgICBlbWl0UHV0SW50VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCk7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMCwgUmVn
aXN0ZXJGaWxlOjpDYWxsZWUpOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVn
VDMsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2Nh
bGxfcHV0X3Jlc3VsdChJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCkBAIC02Nyw2ICs2OCw3IEBA
IHZvaWQgSklUOjpjb21waWxlT3BDYWxsVmFyYXJncyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24p
CiAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gaW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihhcmdDb3VudFJlZ2lzdGVyLCByZWdUMSk7CisgICAg
ZW1pdEZhc3RBcml0aEltbVRvSW50KHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGNhbGxlZSwgcmVnVDApOwogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCksIHJlZ1Qx
LCByZWdUMik7CiAKQEAgLTE5OSw4ICsyMDEsOSBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChP
cGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYQog
ICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9taXRzIHRvIHNldCB1cCBSZWdpc3RlckZpbGU6OkNvZGVC
bG9jaywgd2hpY2ggaXMgc2V0IGluIHRoZSBjYWxsZWUKIAogICAgIGxvYWRQdHIoQWRkcmVzcyhy
ZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMSk7
IC8vIG5ld1Njb3BlQ2hhaW4KLQotICAgIHN0b3JlMzIoSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3Vt
ZW50Q291bnQpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIAor
ICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3IocmVnaXN0ZXJPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsKKyAgICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50
KSwgaW50UGF5bG9hZEZvcihyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCkpOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKICAgICBzdG9yZVB0cihyZWdU
MCwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpDYWxsZWUpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogICAg
IHN0b3JlUHRyKHJlZ1QxLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZz
ZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2Yo
UmVnaXN0ZXIpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3Bw
CmluZGV4IGFjMjMxYTlhNTJhZTBlZmQzNjU3YTVlZDNlZTVhZjA1M2ExNGQ3OGEuLjUxYjA3ZWU4
ZGZmZDUyMmFjYWM4NzkwM2NjZDkyNDMwNGM3MDY0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTQ5LDEwICs0OSwxMCBAQCBuYW1lc3BhY2UgSlND
IHsKIHZvaWQgSklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSgpCiB7CiAgICAg
Ly8gcmVnVDAgaG9sZHMgY2FsbGVlLCByZWdUMSBob2xkcyBhcmdDb3VudAotICAgIHN0b3JlMzIo
cmVnVDEsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hhaW4p
KSwgcmVnVDMpOyAvLyBzY29wZUNoYWluCi0gICAgc3RvcmVQdHIocmVnVDAsIEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSkpOyAvLyBjYWxsZWUKLSAgICBzdG9yZVB0cihyZWdUMywgQWRkcmVz
cyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOyAvLyBzY29wZUNoYWluCisgICAgZW1pdFB1dElu
dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpOwor
ICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDAsIFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVlKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jYWxsX3B1dF9yZXN1bHQo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQpAQCAtNzcsNyArNzcsOCBAQCB2b2lkIEpJVDo6Y29t
cGlsZU9wQ2FsbFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIC8vIFNwZWN1
bGF0aXZlbHkgcm9sbCB0aGUgY2FsbGZyYW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNo
IHRoZSBhcml0eS4KICAgICBtdWwzMihJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgcmVnVDMsIHJl
Z1QzKTsKICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKLSAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhyZWdUMywgUmVnaXN0ZXJGaWxlOjpDYWxsZXJG
cmFtZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBzdG9yZTMy
KEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFt
ZSwgcmVnVDMpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgcGF5bG9hZEZvcihS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMykpOwogICAgIG1vdmUocmVnVDMsIGNhbGxG
cmFtZVJlZ2lzdGVyKTsKIAogICAgIG1vdmUocmVnVDIsIHJlZ1QxKTsgLy8gYXJnQ291bnQKQEAg
LTIwOCw3ICsyMDksOCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJ
RCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCkKICAgICBhZGRTbG93Q2FzZShi
cmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIobV9nbG9iYWxEYXRhLT5q
c0Z1bmN0aW9uVlB0cikpKTsKIAogICAgIC8vIFNwZWN1bGF0aXZlbHkgcm9sbCB0aGUgY2FsbGZy
YW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNoIHRoZSBhcml0eS4KLSAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVvZihSZWdpc3RlcikpKSk7CisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
dGFnRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCwgY2FsbEZy
YW1lUmVnaXN0ZXIpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgcGF5bG9hZEZv
cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQsIGNhbGxGcmFtZVJl
Z2lzdGVyKSk7CiAgICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtb3ZlKElt
bTMyKGFyZ0NvdW50KSwgcmVnVDEpOwogCkBAIC0yODAsMTAgKzI4MiwxMiBAQCB2b2lkIEpJVDo6
Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9u
LCB1bnNpZ25lZCBjYQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9taXRzIHRvIHNldCB1cCBSZWdp
c3RlckZpbGU6OkNvZGVCbG9jaywgd2hpY2ggaXMgc2V0IGluIHRoZSBjYWxsZWUKICAgICBsb2Fk
UHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hh
aW4pKSwgcmVnVDIpOwogCi0gICAgc3RvcmUzMihJbW0zMihhcmdDb3VudCksIEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0gICAgc3RvcmVQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rl
ck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUpICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcp
LCB0YWdGb3IocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsK
KyAgICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50KSwgcGF5bG9hZEZvcihyZWdpc3Rlck9mZnNldCAr
IFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCkpOworICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyLCBwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9m
ZnNldCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0U3RvcmUocmVnaXN0ZXJPZmZzZXQg
KyBSZWdpc3RlckZpbGU6OkNhbGxlZSwgcmVnVDEsIHJlZ1QwKTsKLSAgICBzdG9yZVB0cihyZWdU
MiwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluKSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsK
KyAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IocmVnaXN0ZXJPZmZz
ZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBwYXls
b2FkRm9yKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKSk7CiAgICAg
YWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyKTsKIAogICAgIC8vIENhbGwgdG8gdGhlIGNhbGxlZQpAQCAtMzA5LDcgKzMxMyw4
IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46CiAgICAgSnVtcCBjYWxsTGlua0ZhaWxOb3RKU0Z1
bmN0aW9uID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgSW1tUHRyKG1fZ2xv
YmFsRGF0YS0+anNGdW5jdGlvblZQdHIpKTsKIAogICAgIC8vIFNwZWN1bGF0aXZlbHkgcm9sbCB0
aGUgY2FsbGZyYW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNoIHRoZSBhcml0eS4KLSAg
ICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwg
KFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCkgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgdGFnRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNl
dCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3Rlciwg
cGF5bG9hZEZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQsIGNh
bGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc3Rh
dGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAg
ICBtb3ZlKEltbTMyKGFyZ0NvdW50KSwgcmVnVDEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDIwY2ZlNGMwZTFmYjBiNjhmNTBhOWJmNjVk
M2Y0NmRhMWI2MzA3OTguLjcxMzc0NjBmYzM2NzdlMWFkNmE3NTRlODJhN2JmMjkzMjc2ZDJjZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBAIC01
Miw3ICs1MiwyMSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSklUOjpnZXRDb25zdGFudE9wZXJh
bmQodW5zaWduZWQgc3JjKQogCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
ckVudHJ5IGVudHJ5KQogewotICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIGVudHJ5ICogc2l6ZW9mKFJlZ2lzdGVyKSkpOworICAgIHN0b3JlUHRyKGZyb20sIHBh
eWxvYWRGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lzdGVyKSk7Cit9CisKK0FMV0FZU19JTkxJTkUg
dm9pZCBKSVQ6OmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBS
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQoreworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9yKGVu
dHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOworI2VuZGlmCisgICAgc3RvcmVQdHIoZnJvbSwgcGF5
bG9hZEZvcihlbnRyeSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKK30KKworQUxXQVlTX0lOTElORSB2
b2lkIEpJVDo6ZW1pdFB1dEludFRvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVn
aXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKK3sKKyAgICBzdG9yZTMyKElt
bTMyKEludDMyVGFnKSwgaW50VGFnRm9yKGVudHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOworICAg
IHN0b3JlMzIoZnJvbSwgaW50UGF5bG9hZEZvcihlbnRyeSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsK
IH0KIAogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKHZvaWQqIHZhbHVlLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVu
dHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZjdlZmI1
OWJjNWM1M2Y1NTA4MjVkMTY5YjhiNzhhYjMxYmFhOWQ1OC4uM2ViNzFhY2NjOGU5Yzg3ZmNhZGM2
MGUwMWM4MzI2Zjk3MTRkZWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxl
Q1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICAv
LyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7
Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3Bl
Q2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVy
RmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBwZWVrKHJlZ1QxKTsKICAgICBlbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMjIyLDcgKzIy
Miw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwg
ZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNh
bGxlckZyYW1lLCByZWdUMik7CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVn
aXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDIpOwotICAgIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0
Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwog
CiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQyk7CkBAIC0yNDMsNyArMjQzLDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24K
ICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1l
SGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCBy
ZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6
OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJl
Z2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1l
SGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTkwMiw4ICs5MDIsOSBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZ2V0UG5hbWVzU3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIGdl
dFBuYW1lc1N0dWJDYWxsLmNhbGwoZHN0KTsKICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgT0JK
RUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IsIG1fanNTdHJpbmdzU2l6ZSkpLCBy
ZWdUMyk7Ci0gICAgc3RvcmUzMihJbW0zMigwKSwgYWRkcmVzc0ZvcihpKSk7Ci0gICAgc3RvcmUz
MihyZWdUMywgYWRkcmVzc0ZvcihzaXplKSk7CisgICAgc3RvcmVQdHIodGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwYXlsb2FkRm9yKGkpKTsKKyAgICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwgaW50
VGFnRm9yKHNpemUpKTsKKyAgICBzdG9yZTMyKHJlZ1QzLCBpbnRQYXlsb2FkRm9yKHNpemUpKTsK
ICAgICBKdW1wIGVuZCA9IGp1bXAoKTsKIAogICAgIGlzTm90T2JqZWN0LmxpbmsodGhpcyk7CkBA
IC05MzEsOCArOTMyLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbmV4dF9wbmFtZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIEp1bXBMaXN0IGNhbGxIYXNQcm9wZXJ0eTsKIAog
ICAgIExhYmVsIGJlZ2luKHRoaXMpOwotICAgIGxvYWQzMihhZGRyZXNzRm9yKGkpLCByZWdUMCk7
Ci0gICAgSnVtcCBlbmQgPSBicmFuY2gzMihFcXVhbCwgcmVnVDAsIGFkZHJlc3NGb3Ioc2l6ZSkp
OworICAgIGxvYWQzMihpbnRQYXlsb2FkRm9yKGkpLCByZWdUMCk7CisgICAgSnVtcCBlbmQgPSBi
cmFuY2gzMihFcXVhbCwgcmVnVDAsIGludFBheWxvYWRGb3Ioc2l6ZSkpOwogCiAgICAgLy8gR3Jh
YiBrZXkgQCBpCiAgICAgbG9hZFB0cihhZGRyZXNzRm9yKGl0KSwgcmVnVDEpOwpAQCAtOTQ0LDcg
Kzk0NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX25leHRfcG5hbWUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIAogICAgIC8vIEluY3JlbWVudCBpCiAgICAgYWRkMzIoSW1tMzIoMSks
IHJlZ1QwKTsKLSAgICBzdG9yZTMyKHJlZ1QwLCBhZGRyZXNzRm9yKGkpKTsKKyAgICBzdG9yZTMy
KHJlZ1QwLCBpbnRQYXlsb2FkRm9yKGkpKTsKIAogICAgIC8vIFZlcmlmeSB0aGF0IGkgaXMgdmFs
aWQ6CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CkBAIC0xNjg5LDcg
KzE2OTAsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb2FkX3ZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICNlbmRpZgogICAgIC8vIExvYWQgYXJnIGNvdW50IGludG8gcmVn
VDAKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCwgcmVnVDApOwotICAgIHN0b3JlUHRyKHJlZ1QwLCBhZGRyZXNzRm9yKGFyZ0NvdW50
RHN0KSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGludFRhZ0ZvcihhcmdDb3VudERz
dCkpOworICAgIHN0b3JlMzIocmVnVDAsIGludFBheWxvYWRGb3IoYXJnQ291bnREc3QpKTsKICAg
ICBKdW1wIGVuZEJyYW5jaCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgSW1tMzIoMSkpOwogCiAg
ICAgbXVsMzIoSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIHJlZ1QwLCByZWdUMyk7CkBAIC0xNzI3
LDggKzE3MjksOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbG9hZF92YXJhcmdzKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93QwogICAgIEpJVFN0dWJDYWxsIHN0
dWJDYWxsKHRoaXMsIGN0aV9vcF9sb2FkX3ZhcmFyZ3MpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KEltbTMyKGFyZ3NPZmZzZXQpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgLy8gU3Rv
cmVzIGEgbmFrZWQgaW50MzIgaW4gdGhlIHJlZ2lzdGVyIGZpbGUuCi0gICAgc3RvcmUzMihyZXR1
cm5WYWx1ZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmdDb3VudERzdCAq
IHNpemVvZihSZWdpc3RlcikpKTsKKyAgICAKKyAgICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwg
aW50VGFnRm9yKGFyZ0NvdW50RHN0KSk7CisgICAgc3RvcmUzMihyZXR1cm5WYWx1ZVJlZ2lzdGVy
LCBpbnRQYXlsb2FkRm9yKGFyZ0NvdW50RHN0KSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX25l
d19mdW5jKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggN2QzNjk3ZTIyM2Q0NTE4ZWIy
NmY5NjFmYTIyYTQ5ZmJlZTIzYzY3My4uYTMyMjdlNTZiNWE2ZmIwM2FmOTczMDk2YzdjOGU5MzU0
ZTY2ODk2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0
LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNU
SU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgLy8g
Z2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwot
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNo
YWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcGVlayhyZWdUMSk7CiAgICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTIyOSw3ICsyMjks
NyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRh
dGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZSwgcmVnVDIpOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lz
dGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJh
bWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENl
bGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAog
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6
UmV0dXJuUEMpOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAg
ICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVn
VDApOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhl
YWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0zMjEsNyArMzIxLDcgQEAg
SklUOjpDb2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NSZWZQdHI8
RXhlY3V0YWJsZVBvb2w+IGV4ZWN1dGEKICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgog
ICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJh
bWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9D
YWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBw
ZWVrKHJlZ1QxKTsKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVy
RmlsZTo6UmV0dXJuUEMpOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIEpJVDo6Q29kZVB0ciBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChQYXNzUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBleGVj
dXRhCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMik7CiAgICAgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdU
MSwgcmVnVDIpOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qx
LCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0zNjcsNyArMzY3
LDcgQEAgSklUOjpDb2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NS
ZWZQdHI8RXhlY3V0YWJsZVBvb2w+IGV4ZWN1dGEKICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBk
YXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRD
ZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAK
ICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJl
c2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6
OlJldHVyblBDKTsKQEAgLTEyNzYsOCArMTI3NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
cG5hbWVzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZ2V0UG5hbWVzU3R1
YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIGdldFBuYW1lc1N0dWJDYWxsLmNhbGwoZHN0
KTsKICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IsIG1fanNTdHJpbmdzU2l6ZSkpLCByZWdUMyk7Ci0gICAgc3RvcmUzMihJbW0z
MigwKSwgYWRkcmVzc0ZvcihpKSk7Ci0gICAgc3RvcmUzMihyZWdUMywgYWRkcmVzc0ZvcihzaXpl
KSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGludFRhZ0ZvcihpKSk7CisgICAgc3Rv
cmUzMihJbW0zMigwKSwgaW50UGF5bG9hZEZvcihpKSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQz
MlRhZyksIGludFRhZ0ZvcihzaXplKSk7CisgICAgc3RvcmUzMihyZWdUMywgcGF5bG9hZEZvcihz
aXplKSk7CiAgICAgSnVtcCBlbmQgPSBqdW1wKCk7CiAKICAgICBpc05vdE9iamVjdC5saW5rKHRo
aXMpOwpAQCAtMTMwMywxMSArMTMwNSwxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXh0X3BuYW1l
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgSnVtcExpc3QgY2FsbEhhc1By
b3BlcnR5OwogCiAgICAgTGFiZWwgYmVnaW4odGhpcyk7Ci0gICAgbG9hZDMyKGFkZHJlc3NGb3Io
aSksIHJlZ1QwKTsKLSAgICBKdW1wIGVuZCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgYWRkcmVz
c0ZvcihzaXplKSk7CisgICAgbG9hZDMyKGludFBheWxvYWRGb3IoaSksIHJlZ1QwKTsKKyAgICBK
dW1wIGVuZCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgaW50UGF5bG9hZEZvcihzaXplKSk7CiAK
ICAgICAvLyBHcmFiIGtleSBAIGkKLSAgICBsb2FkUHRyKGFkZHJlc3NGb3IoaXQpLCByZWdUMSk7
CisgICAgbG9hZFB0cihwYXlsb2FkRm9yKGl0KSwgcmVnVDEpOwogICAgIGxvYWRQdHIoQWRkcmVz
cyhyZWdUMSwgT0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IsIG1fanNTdHJp
bmdzKSksIHJlZ1QyKTsKICAgICBsb2FkMzIoQmFzZUluZGV4KHJlZ1QyLCByZWdUMCwgVGltZXNF
aWdodCksIHJlZ1QyKTsKICAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdG
b3IoZHN0KSk7CkBAIC0xMzE1LDEwICsxMzE3LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX25leHRf
cG5hbWUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIC8vIEluY3JlbWVu
dCBpCiAgICAgYWRkMzIoSW1tMzIoMSksIHJlZ1QwKTsKLSAgICBzdG9yZTMyKHJlZ1QwLCBhZGRy
ZXNzRm9yKGkpKTsKKyAgICBzdG9yZTMyKHJlZ1QwLCBpbnRQYXlsb2FkRm9yKGkpKTsKIAogICAg
IC8vIFZlcmlmeSB0aGF0IGkgaXMgdmFsaWQ6Ci0gICAgbG9hZFB0cihhZGRyZXNzRm9yKGJhc2Up
LCByZWdUMCk7CisgICAgbG9hZFB0cihwYXlsb2FkRm9yKGJhc2UpLCByZWdUMCk7CiAKICAgICAv
LyBUZXN0IGJhc2UncyBzdHJ1Y3R1cmUKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVD
VF9PRkZTRVRPRihKU0NlbGwsIG1fc3RydWN0dXJlKSksIHJlZ1QyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA2NDUzYmFiNWQ4YzA0OGVkOGY2YzM0
OTNjYjBmNDE4MWJlMzJmNGIzLi5mMTBmZWQxNzg3YjE2NzJjY2E2YjAwMWI1NWU4YTlhZjE2Y2M1
OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCkBAIC0x
NTcsNiArMTU3LDExIEBAIG5hbWVzcGFjZSBKU0MgewogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRl
ZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludDMyVGFnID0gSlNWYWx1ZTo6SW50MzJUYWc7
CisjZWxzZQorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW50MzJUYWcgPSBKU0ltbWVk
aWF0ZTo6VGFnVHlwZU51bWJlciA+PiAzMjsKKyNlbmRpZgogICAgICAgICBpbmxpbmUgSnVtcCBl
bWl0TG9hZEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBw
YXlsb2FkKTsKICAgICAgICAgaW5saW5lIEp1bXAgZW1pdExvYWRJbnQzMih1bnNpZ25lZCB2aXJ0
dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBkc3QpOwogICAgICAgICBpbmxpbmUgSnVtcCBl
bWl0TG9hZERvdWJsZSh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgRlBSZWdpc3RlcklE
IGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKTsKQEAgLTE3Myw4ICsxNzgsMjkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAjZW5kaWYKIAogICAgICAgICBpbmxpbmUgQWRkcmVzcyBwYXlsb2FkRm9yKHVuc2ln
bmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAg
IGlubGluZSBBZGRyZXNzIGludFBheWxvYWRGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQg
YmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgaW5saW5lIEFkZHJlc3MgaW50VGFn
Rm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7
CiAgICAgICAgIGlubGluZSBBZGRyZXNzIGFkZHJlc3NGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lz
dGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAKKyAgICBwcml2YXRlOgorI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHN0cnVjdCBJbnRWYWx1ZURlc2NyaXB0b3IgeworICAg
ICAgICAgICAgdW5pb24geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICAgICAgICAgIHN0
cnVjdCB7CisgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGFnOworICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHBheWxvYWQ7CisgICAgICAgICAgICAgICAgfSBhc0JpdHM7CisjZWxzZQor
ICAgICAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcGF5
bG9hZDsKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0YWc7CisgICAgICAgICAgICAgICAg
fSBhc0JpdHM7CisjZW5kaWYKKyAgICAgICAgICAgIH0gdTsKKyAgICAgICAgfTsKICAgICB9Owor
I2VuZGlmCiAKICAgICBzdHJ1Y3QgVGh1bmtIZWxwZXJzIHsKICAgICAgICAgc3RhdGljIHVuc2ln
bmVkIHN0cmluZ0ltcGxEYXRhT2Zmc2V0KCkgeyByZXR1cm4gU3RyaW5nSW1wbDo6ZGF0YU9mZnNl
dCgpOyB9CkBAIC0yMTQsNiArMjQwLDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1
cm4gQWRkcmVzcyhiYXNlLCAodmlydHVhbFJlZ2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0ZXIp
KSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQog
CisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50ZXJmYWNlSklUOjppbnRQ
YXlsb2FkRm9yKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJhc2Up
CisgICAgeworICAgICAgICByZXR1cm4gcGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCwg
YmFzZSk7CisgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50
ZXJmYWNlSklUOjppbnRUYWdGb3IodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lz
dGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0YWdGb3IodmlydHVhbFJlZ2lzdGVy
SW5kZXgsIGJhc2UpOworICAgIH0KKwogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBK
U0ludGVyZmFjZUpJVDo6ZW1pdExvYWREb3VibGUodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5k
ZXgsIEZQUmVnaXN0ZXJJRCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8IEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4KTsKQEAgLTI3OSw2ICszMTUsMTcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8
IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KTsKICAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Io
dmlydHVhbFJlZ2lzdGVySW5kZXgsIGJhc2UpOwogICAgIH0KKworICAgIGlubGluZSBKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6aW50UGF5bG9hZEZvcih1bnNpZ25lZCB2
aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKHN0YXRpY19jYXN0PGludD4odmlydHVhbFJlZ2lzdGVySW5kZXgpIDwgRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXgpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAodmlydHVhbFJl
Z2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihJbnRWYWx1
ZURlc2NyaXB0b3IsIHUuYXNCaXRzLnBheWxvYWQpKTsKKyAgICB9CisgICAgaW5saW5lIEpTSW50
ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IodW5zaWduZWQgdmly
dHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIEFTU0VS
VChzdGF0aWNfY2FzdDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8IEZpcnN0Q29uc3RhbnRS
ZWdpc3RlckluZGV4KTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZSwgKHZpcnR1YWxSZWdp
c3RlckluZGV4ICogc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSW50VmFsdWVE
ZXNjcmlwdG9yLCB1LmFzQml0cy50YWcpKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIGlubGluZSBK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6YWRkcmVzc0Zvcih1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAppbmRleCA1YzU5M2Q5OWQ4NjA0
OWMxYmU2OTY2OWRhNjNmZTRhZDkyZTlhMzAyLi44YmQ0ZWM0OWM4YmMyYjcxNTE5Y2M0ODQ3Yzlm
NGI2ZDIyMTc1MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNp
YWxpemVkVGh1bmtKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxp
emVkVGh1bmtKSVQuaApAQCAtODcsNyArODcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNy
YywgcmVnVDApOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVy
LCBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICogKGludClzaXplb2YoUmVnaXN0ZXIpKSwgY2Fs
bEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZFB0cihwYXlsb2FkRm9yKFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUsIGNhbGxGcmFtZVJlZ2lzdGVyKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0xMDEsNyArMTAx
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpIC0g
c2l6ZW9mKGRvdWJsZSkpLCByZWdUMSk7CiAgICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3Moc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXls
b2FkKSAtIHNpemVvZihkb3VibGUpKSwgcmVnVDApOwogI2VuZGlmCi0gICAgICAgICAgICBsb2Fk
UHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUg
KiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAg
ICBsb2FkUHRyKHBheWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgY2FsbEZyYW1l
UmVnaXN0ZXIpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICByZXQoKTsKICAgICAg
ICAgfQogCkBAIC0xMTAsNyArMTEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBp
ZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAg
ICAgICAgICB0YWdSZXR1cm5Bc0ludDMyKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3Mo
Y2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKiAoaW50KXNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkUHRyKHBh
eWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgY2FsbEZyYW1lUmVnaXN0ZXIpLCBj
YWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogCkBAIC0x
MTksNyArMTE5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJl
Z1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAgICAgICAgICB0YWdS
ZXR1cm5Bc0pTQ2VsbCgpOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyLCBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICogKGludClzaXplb2YoUmVnaXN0ZXIp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZFB0cihwYXlsb2FkRm9yKFJl
Z2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIGNhbGxGcmFtZVJlZ2lzdGVyKSwgY2FsbEZyYW1lUmVn
aXN0ZXIpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85520</attachid>
            <date>2011-03-11 13:34:36 -0800</date>
            <delta_ts>2011-03-11 15:09:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56214-20110311133434.patch</filename>
            <type>text/plain</type>
            <size>30459</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
YTBhNmQ3ZTY1OWI2ZTg5YzZhYTZjOTVlNmQ2OTg3ZGYyNTJmMzcuLmJkZTRlNmI3NWY3ZjIxZmQ2
MjlmYTUwOWYzOWFjMzQyMzBmODBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDExLTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFs
bCB2YWx1ZXMgYXJlIGNvcnJlY3RseSB0YWdnZWQgaW4gdGhlIHJlZ2lzdGVyZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTQKKworICAgICAg
ICBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgdGhhdCBhbGwgSlNDZWxsIHBvaW50ZXJzIHdyaXR0ZW4g
dG8KKyAgICAgICAgdGhlIHJlZ2lzdGVyZmlsZSBhcmUgY29ycmVjdGx5IHRhZ2dlZCBhcyBKU0Nl
bGxzLCBhbmQgcmVwbGFjZXMKKyAgICAgICAgcmF3IGludCB1c2FnZSB3aXRoIHRoZSBpbW1lZGlh
dGUgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgRm9yIHBlcmZvcm1hbmNlLCByZWdpc3RlciBw
cmVzc3VyZSwgYW5kIGdlbmVyYWwgc2FuZW5lc3MgcmVhc29ucworICAgICAgICBJJ3ZlIGFkZGVk
IGFic3RyYWN0aW9ucyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgdGFnCisgICAgICAgIGFu
ZCBwYXlsb2FkIG9mIGludGVnZXIgcmVnaXN0ZXJzIGRpcmVjdGx5IGZvciB0aGUgSlNWQUxVRTY0
CisgICAgICAgIGVuY29kaW5nLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OndpdGhJbnQpOgorICAgICAgICAoSlNDOjpSZWdpc3Rl
cjo6d2l0aENhbGxlZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoSlNDOjpSZWdpc3Rlcjo6aSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphY3RpdmF0
aW9uKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
UmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6
OnNjb3BlQ2hhaW4pOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2Fs
bC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJh
bWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAg
KEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSk6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxT
bG93Q2FzZSk6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRJ
bnRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X25leHRfcG5hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9hZF92YXJhcmdzKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb2FkX3ZhcmFyZ3MpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVz
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25leHRfcG5hbWUpOgorICAgICAgICAqIGpp
dC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6aW50UGF5
bG9hZEZvcik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IpOgorICAg
ICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6CisgICAgICAgIChKU0M6OlNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJldHVybkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRo
dW5rSklUOjpyZXR1cm5Eb3VibGUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklU
OjpyZXR1cm5JbnQzMik6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVy
bkpTQ2VsbCk6CisKIDIwMTEtMDMtMTEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzN2QxYzU3MDQ5YzI0NjJlYjk3MzQ4NjYxNDhmMTllZDRiZGIz
ZmJlLi45ZjhkNDlhNjk4NWNmZDlhMzVlM2Y1MTIyNTRjMzU3NmM1MzFiYzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0NCw2ICsyNTQ0LDcgQEAKIAkJCX07CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKKwkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCmluZGV4IDM5NDQ2NDI2ODA2MzY5NDU4NDkxMGFlMjdjYjY2Y2IwODFkNGRh
ZmMuLjY4MzRlZGEyOTQxYmFkMzVjOGMwOGRjNGFkNGQwNjYwMWE5ZDNkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03MywyOSArNzMsMjIg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFJlZ2lzdGVyIHdpdGhJbnQoaW50
MzJfdCBpKQogICAgICAgICB7Ci0gICAgICAgICAgICBSZWdpc3RlciByOwotICAgICAgICAgICAg
ci51LmkgPSBpOworICAgICAgICAgICAgUmVnaXN0ZXIgciA9IGpzTnVtYmVyKGkpOwogICAgICAg
ICAgICAgcmV0dXJuIHI7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgUmVnaXN0ZXIgd2l0
aENhbGxlZShKU09iamVjdCogY2FsbGVlKQogICAgICAgICB7CiAgICAgICAgICAgICBSZWdpc3Rl
ciByOwotICAgICAgICAgICAgci51LmZ1bmN0aW9uID0gY2FsbGVlOworICAgICAgICAgICAgciA9
IEpTVmFsdWUocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihjYWxsZWUpKTsKICAgICAgICAgICAg
IHJldHVybiByOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgogICAgICAgICB1bmlvbiB7Ci0g
ICAgICAgICAgICBpbnQzMl90IGk7CiAgICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSB2YWx1ZTsK
LQotICAgICAgICAgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uOwogICAgICAgICAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKLSAg
ICAgICAgICAgIEpTT2JqZWN0KiBmdW5jdGlvbjsKLSAgICAgICAgICAgIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgICAgICAgICAgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW47CiAgICAgICAgICAgICBJbnN0cnVjdGlvbiogdlBDOwogICAgICAgICB9
IHU7CiAgICAgfTsKQEAgLTEzMyw3ICsxMjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEFM
V0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpvcGVyYXRvcj0oSlNBY3RpdmF0aW9uKiBh
Y3RpdmF0aW9uKQogICAgIHsKLSAgICAgICAgdS5hY3RpdmF0aW9uID0gYWN0aXZhdGlvbjsKKyAg
ICAgICAgKnRoaXMgPSBKU1ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oYWN0aXZhdGlv
bikpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCkBAIC0xNTcsMjQgKzE1MCwyNCBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVy
OjpvcGVyYXRvcj0oU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgewotICAgICAgICB1
LnNjb3BlQ2hhaW4gPSBzY29wZUNoYWluOworICAgICAgICAqdGhpcyA9IEpTVmFsdWUocmVpbnRl
cnByZXRfY2FzdDxKU0NlbGwqPihzY29wZUNoYWluKSk7CiAgICAgICAgIHJldHVybiAqdGhpczsK
ICAgICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVyJiBSZWdpc3Rlcjo6b3BlcmF0b3I9
KEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKQogICAgIHsKLSAg
ICAgICAgdS5wcm9wZXJ0eU5hbWVJdGVyYXRvciA9IHByb3BlcnR5TmFtZUl0ZXJhdG9yOworICAg
ICAgICAqdGhpcyA9IEpTVmFsdWUocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwcm9wZXJ0eU5h
bWVJdGVyYXRvcikpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgQUxXQVlT
X0lOTElORSBpbnQzMl90IFJlZ2lzdGVyOjppKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVy
biB1Lmk7CisgICAgICAgIHJldHVybiBqc1ZhbHVlKCkuYXNJbnQzMigpOwogICAgIH0KICAgICAK
ICAgICBBTFdBWVNfSU5MSU5FIEpTQWN0aXZhdGlvbiogUmVnaXN0ZXI6OmFjdGl2YXRpb24oKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHUuYWN0aXZhdGlvbjsKKyAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8SlNBY3RpdmF0aW9uKj4oanNWYWx1ZSgpLmFzQ2VsbCgpKTsKICAg
ICB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSBDYWxsRnJhbWUqIFJlZ2lzdGVyOjpjYWxsRnJh
bWUoKSBjb25zdApAQCAtMTg5LDE3ICsxODIsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAg
ICAgQUxXQVlTX0lOTElORSBKU09iamVjdCogUmVnaXN0ZXI6OmZ1bmN0aW9uKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiB1LmZ1bmN0aW9uOworICAgICAgICBpZiAoIWpzVmFsdWUoKSkK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxK
U09iamVjdCo+KGpzVmFsdWUoKS5hc0NlbGwoKSk7CiAgICAgfQogICAgIAogICAgIEFMV0FZU19J
TkxJTkUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogUmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJh
dG9yKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB1LnByb3BlcnR5TmFtZUl0ZXJhdG9y
OworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
Kj4oanNWYWx1ZSgpLmFzQ2VsbCgpKTsKICAgICB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSBT
Y29wZUNoYWluTm9kZSogUmVnaXN0ZXI6OnNjb3BlQ2hhaW4oKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHUuc2NvcGVDaGFpbjsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U2NvcGVDaGFpbk5vZGUqPihqc1ZhbHVlKCkuYXNDZWxsKCkpOwogICAgIH0KICAgICAKICAgICBB
TFdBWVNfSU5MSU5FIEluc3RydWN0aW9uKiBSZWdpc3Rlcjo6dlBDKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCmluZGV4IGJlMDY1ZDA3MjM0NDRkYjlhNWZlZjY0YTEyOTdkZTM5MmJmMDcz
OWMuLmFlNjBjY2IyZDBhZjRhMGUzYmU0NjRmMTVjMDkzZWE3OTI5ZTJhYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaApAQCAtODUzLDYgKzg1Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2b2lkIGVtaXRJbml0UmVnaXN0ZXIodW5zaWduZWQgZHN0KTsKIAogICAgICAgICB2b2lkIGVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2Fs
bEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOworICAgICAgICB2b2lkIGVtaXRQdXRDZWxsVG9DYWxs
RnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
ckVudHJ5KTsKKyAgICAgICAgdm9pZCBlbWl0UHV0SW50VG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0
ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5KTsKICAgICAgICAg
dm9pZCBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIodm9pZCogdmFsdWUsIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOwogICAgICAgICB2b2lkIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50
cnkgZW50cnksIFJlZ2lzdGVySUQgdG8sIFJlZ2lzdGVySUQgZnJvbSA9IGNhbGxGcmFtZVJlZ2lz
dGVyKTsKICAgICAgICAgdm9pZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnksIFJlZ2lzdGVySUQgdG8sIFJlZ2lzdGVy
SUQgZnJvbSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwuY3BwCmluZGV4IDUyNGU1NzZiN2Y2OTljMDI5NWM2YjFhNWJiNjY4MDhjODE5YWRiNGMuLjll
YzRjYmNiNzZiMWIzYmZmZTQ3ODRjN2IzYzAyMjMwMDFjMmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDYWxsLmNwcApAQCAtNDgsMTAgKzQ4LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
CiB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJhbWUoKQogewotICAgIHN0
b3JlMzIocmVnVDEsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBs
b2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3Bl
Q2hhaW4pKSwgcmVnVDMpOyAvLyBuZXdTY29wZUNoYWluCi0gICAgc3RvcmVQdHIocmVnVDAsIEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwotICAgIHN0b3JlUHRyKHJlZ1QzLCBBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4gKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgLy8gcmVnVDAgaG9sZHMgY2FsbGVlLCBy
ZWdUMSBob2xkcyBhcmdDb3VudAorICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09G
RlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMyk7IC8vIHNjb3BlQ2hhaW4K
KyAgICBlbWl0UHV0SW50VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCk7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMCwgUmVn
aXN0ZXJGaWxlOjpDYWxsZWUpOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVn
VDMsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2Nh
bGxfcHV0X3Jlc3VsdChJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCkBAIC02Nyw2ICs2OCw3IEBA
IHZvaWQgSklUOjpjb21waWxlT3BDYWxsVmFyYXJncyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24p
CiAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gaW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihhcmdDb3VudFJlZ2lzdGVyLCByZWdUMSk7CisgICAg
ZW1pdEZhc3RBcml0aEltbVRvSW50KHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGNhbGxlZSwgcmVnVDApOwogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCksIHJlZ1Qx
LCByZWdUMik7CiAKQEAgLTE5OSw4ICsyMDEsOSBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChP
cGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYQog
ICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9taXRzIHRvIHNldCB1cCBSZWdpc3RlckZpbGU6OkNvZGVC
bG9jaywgd2hpY2ggaXMgc2V0IGluIHRoZSBjYWxsZWUKIAogICAgIGxvYWRQdHIoQWRkcmVzcyhy
ZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMSk7
IC8vIG5ld1Njb3BlQ2hhaW4KLQotICAgIHN0b3JlMzIoSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3Vt
ZW50Q291bnQpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIAor
ICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3IocmVnaXN0ZXJPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsKKyAgICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50
KSwgaW50UGF5bG9hZEZvcihyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCkpOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKICAgICBzdG9yZVB0cihyZWdU
MCwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpDYWxsZWUpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogICAg
IHN0b3JlUHRyKHJlZ1QxLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZz
ZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2Yo
UmVnaXN0ZXIpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3Bw
CmluZGV4IGFjMjMxYTlhNTJhZTBlZmQzNjU3YTVlZDNlZTVhZjA1M2ExNGQ3OGEuLjUxYjA3ZWU4
ZGZmZDUyMmFjYWM4NzkwM2NjZDkyNDMwNGM3MDY0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTQ5LDEwICs0OSwxMCBAQCBuYW1lc3BhY2UgSlND
IHsKIHZvaWQgSklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSgpCiB7CiAgICAg
Ly8gcmVnVDAgaG9sZHMgY2FsbGVlLCByZWdUMSBob2xkcyBhcmdDb3VudAotICAgIHN0b3JlMzIo
cmVnVDEsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hhaW4p
KSwgcmVnVDMpOyAvLyBzY29wZUNoYWluCi0gICAgc3RvcmVQdHIocmVnVDAsIEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSkpOyAvLyBjYWxsZWUKLSAgICBzdG9yZVB0cihyZWdUMywgQWRkcmVz
cyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOyAvLyBzY29wZUNoYWluCisgICAgZW1pdFB1dElu
dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpOwor
ICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDAsIFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVlKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jYWxsX3B1dF9yZXN1bHQo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQpAQCAtNzcsNyArNzcsOCBAQCB2b2lkIEpJVDo6Y29t
cGlsZU9wQ2FsbFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIC8vIFNwZWN1
bGF0aXZlbHkgcm9sbCB0aGUgY2FsbGZyYW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNo
IHRoZSBhcml0eS4KICAgICBtdWwzMihJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgcmVnVDMsIHJl
Z1QzKTsKICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKLSAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhyZWdUMywgUmVnaXN0ZXJGaWxlOjpDYWxsZXJG
cmFtZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBzdG9yZTMy
KEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFt
ZSwgcmVnVDMpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgcGF5bG9hZEZvcihS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMykpOwogICAgIG1vdmUocmVnVDMsIGNhbGxG
cmFtZVJlZ2lzdGVyKTsKIAogICAgIG1vdmUocmVnVDIsIHJlZ1QxKTsgLy8gYXJnQ291bnQKQEAg
LTIwOCw3ICsyMDksOCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJ
RCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCkKICAgICBhZGRTbG93Q2FzZShi
cmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIobV9nbG9iYWxEYXRhLT5q
c0Z1bmN0aW9uVlB0cikpKTsKIAogICAgIC8vIFNwZWN1bGF0aXZlbHkgcm9sbCB0aGUgY2FsbGZy
YW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNoIHRoZSBhcml0eS4KLSAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVvZihSZWdpc3RlcikpKSk7CisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
dGFnRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCwgY2FsbEZy
YW1lUmVnaXN0ZXIpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgcGF5bG9hZEZv
cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQsIGNhbGxGcmFtZVJl
Z2lzdGVyKSk7CiAgICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtb3ZlKElt
bTMyKGFyZ0NvdW50KSwgcmVnVDEpOwogCkBAIC0yODAsMTAgKzI4MiwxMiBAQCB2b2lkIEpJVDo6
Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9u
LCB1bnNpZ25lZCBjYQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9taXRzIHRvIHNldCB1cCBSZWdp
c3RlckZpbGU6OkNvZGVCbG9jaywgd2hpY2ggaXMgc2V0IGluIHRoZSBjYWxsZWUKICAgICBsb2Fk
UHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hh
aW4pKSwgcmVnVDIpOwogCi0gICAgc3RvcmUzMihJbW0zMihhcmdDb3VudCksIEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0gICAgc3RvcmVQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rl
ck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUpICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcp
LCB0YWdGb3IocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsK
KyAgICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50KSwgcGF5bG9hZEZvcihyZWdpc3Rlck9mZnNldCAr
IFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCkpOworICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyLCBwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9m
ZnNldCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0U3RvcmUocmVnaXN0ZXJPZmZzZXQg
KyBSZWdpc3RlckZpbGU6OkNhbGxlZSwgcmVnVDEsIHJlZ1QwKTsKLSAgICBzdG9yZVB0cihyZWdU
MiwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluKSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsK
KyAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IocmVnaXN0ZXJPZmZz
ZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBwYXls
b2FkRm9yKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKSk7CiAgICAg
YWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyKTsKIAogICAgIC8vIENhbGwgdG8gdGhlIGNhbGxlZQpAQCAtMzA5LDcgKzMxMyw4
IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46CiAgICAgSnVtcCBjYWxsTGlua0ZhaWxOb3RKU0Z1
bmN0aW9uID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgSW1tUHRyKG1fZ2xv
YmFsRGF0YS0+anNGdW5jdGlvblZQdHIpKTsKIAogICAgIC8vIFNwZWN1bGF0aXZlbHkgcm9sbCB0
aGUgY2FsbGZyYW1lLCBhc3N1bWluZyBhcmdDb3VudCB3aWxsIG1hdGNoIHRoZSBhcml0eS4KLSAg
ICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwg
KFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCkgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgdGFnRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNl
dCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3Rlciwg
cGF5bG9hZEZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQsIGNh
bGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc3Rh
dGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAg
ICBtb3ZlKEltbTMyKGFyZ0NvdW50KSwgcmVnVDEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDIwY2ZlNGMwZTFmYjBiNjhmNTBhOWJmNjVk
M2Y0NmRhMWI2MzA3OTguLjcxMzc0NjBmYzM2NzdlMWFkNmE3NTRlODJhN2JmMjkzMjc2ZDJjZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBAIC01
Miw3ICs1MiwyMSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSklUOjpnZXRDb25zdGFudE9wZXJh
bmQodW5zaWduZWQgc3JjKQogCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
ckVudHJ5IGVudHJ5KQogewotICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIGVudHJ5ICogc2l6ZW9mKFJlZ2lzdGVyKSkpOworICAgIHN0b3JlUHRyKGZyb20sIHBh
eWxvYWRGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lzdGVyKSk7Cit9CisKK0FMV0FZU19JTkxJTkUg
dm9pZCBKSVQ6OmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBS
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQoreworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9yKGVu
dHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOworI2VuZGlmCisgICAgc3RvcmVQdHIoZnJvbSwgcGF5
bG9hZEZvcihlbnRyeSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKK30KKworQUxXQVlTX0lOTElORSB2
b2lkIEpJVDo6ZW1pdFB1dEludFRvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVn
aXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKK3sKKyAgICBzdG9yZTMyKElt
bTMyKEludDMyVGFnKSwgaW50VGFnRm9yKGVudHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOworICAg
IHN0b3JlMzIoZnJvbSwgaW50UGF5bG9hZEZvcihlbnRyeSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsK
IH0KIAogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKHZvaWQqIHZhbHVlLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVu
dHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZjdlZmI1
OWJjNWM1M2Y1NTA4MjVkMTY5YjhiNzhhYjMxYmFhOWQ1OC4uM2ViNzFhY2NjOGU5Yzg3ZmNhZGM2
MGUwMWM4MzI2Zjk3MTRkZWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxl
Q1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICAv
LyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7
Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3Bl
Q2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVy
RmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBwZWVrKHJlZ1QxKTsKICAgICBlbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMjIyLDcgKzIy
Miw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwg
ZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNh
bGxlckZyYW1lLCByZWdUMik7CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVn
aXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDIpOwotICAgIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0
Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwog
CiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQyk7CkBAIC0yNDMsNyArMjQzLDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24K
ICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1l
SGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCBy
ZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6
OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJl
Z2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1l
SGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTkwMiw4ICs5MDIsOSBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZ2V0UG5hbWVzU3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIGdl
dFBuYW1lc1N0dWJDYWxsLmNhbGwoZHN0KTsKICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgT0JK
RUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IsIG1fanNTdHJpbmdzU2l6ZSkpLCBy
ZWdUMyk7Ci0gICAgc3RvcmUzMihJbW0zMigwKSwgYWRkcmVzc0ZvcihpKSk7Ci0gICAgc3RvcmUz
MihyZWdUMywgYWRkcmVzc0ZvcihzaXplKSk7CisgICAgc3RvcmVQdHIodGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBwYXlsb2FkRm9yKGkpKTsKKyAgICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwgaW50
VGFnRm9yKHNpemUpKTsKKyAgICBzdG9yZTMyKHJlZ1QzLCBpbnRQYXlsb2FkRm9yKHNpemUpKTsK
ICAgICBKdW1wIGVuZCA9IGp1bXAoKTsKIAogICAgIGlzTm90T2JqZWN0LmxpbmsodGhpcyk7CkBA
IC05MzEsOCArOTMyLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbmV4dF9wbmFtZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIEp1bXBMaXN0IGNhbGxIYXNQcm9wZXJ0eTsKIAog
ICAgIExhYmVsIGJlZ2luKHRoaXMpOwotICAgIGxvYWQzMihhZGRyZXNzRm9yKGkpLCByZWdUMCk7
Ci0gICAgSnVtcCBlbmQgPSBicmFuY2gzMihFcXVhbCwgcmVnVDAsIGFkZHJlc3NGb3Ioc2l6ZSkp
OworICAgIGxvYWQzMihpbnRQYXlsb2FkRm9yKGkpLCByZWdUMCk7CisgICAgSnVtcCBlbmQgPSBi
cmFuY2gzMihFcXVhbCwgcmVnVDAsIGludFBheWxvYWRGb3Ioc2l6ZSkpOwogCiAgICAgLy8gR3Jh
YiBrZXkgQCBpCiAgICAgbG9hZFB0cihhZGRyZXNzRm9yKGl0KSwgcmVnVDEpOwpAQCAtOTQ0LDcg
Kzk0NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX25leHRfcG5hbWUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIAogICAgIC8vIEluY3JlbWVudCBpCiAgICAgYWRkMzIoSW1tMzIoMSks
IHJlZ1QwKTsKLSAgICBzdG9yZTMyKHJlZ1QwLCBhZGRyZXNzRm9yKGkpKTsKKyAgICBzdG9yZTMy
KHJlZ1QwLCBpbnRQYXlsb2FkRm9yKGkpKTsKIAogICAgIC8vIFZlcmlmeSB0aGF0IGkgaXMgdmFs
aWQ6CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CkBAIC0xNjg5LDcg
KzE2OTAsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb2FkX3ZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICNlbmRpZgogICAgIC8vIExvYWQgYXJnIGNvdW50IGludG8gcmVn
VDAKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCwgcmVnVDApOwotICAgIHN0b3JlUHRyKHJlZ1QwLCBhZGRyZXNzRm9yKGFyZ0NvdW50
RHN0KSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGludFRhZ0ZvcihhcmdDb3VudERz
dCkpOworICAgIHN0b3JlMzIocmVnVDAsIGludFBheWxvYWRGb3IoYXJnQ291bnREc3QpKTsKICAg
ICBKdW1wIGVuZEJyYW5jaCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgSW1tMzIoMSkpOwogCiAg
ICAgbXVsMzIoSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIHJlZ1QwLCByZWdUMyk7CkBAIC0xNzI3
LDggKzE3MjksOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbG9hZF92YXJhcmdzKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93QwogICAgIEpJVFN0dWJDYWxsIHN0
dWJDYWxsKHRoaXMsIGN0aV9vcF9sb2FkX3ZhcmFyZ3MpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KEltbTMyKGFyZ3NPZmZzZXQpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgLy8gU3Rv
cmVzIGEgbmFrZWQgaW50MzIgaW4gdGhlIHJlZ2lzdGVyIGZpbGUuCi0gICAgc3RvcmUzMihyZXR1
cm5WYWx1ZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmdDb3VudERzdCAq
IHNpemVvZihSZWdpc3RlcikpKTsKKyAgICAKKyAgICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwg
aW50VGFnRm9yKGFyZ0NvdW50RHN0KSk7CisgICAgc3RvcmUzMihyZXR1cm5WYWx1ZVJlZ2lzdGVy
LCBpbnRQYXlsb2FkRm9yKGFyZ0NvdW50RHN0KSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX25l
d19mdW5jKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggN2QzNjk3ZTIyM2Q0NTE4ZWIy
NmY5NjFmYTIyYTQ5ZmJlZTIzYzY3My4uYTMyMjdlNTZiNWE2ZmIwM2FmOTczMDk2YzdjOGU5MzU0
ZTY2ODk2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0
LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNU
SU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgLy8g
Z2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwot
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNo
YWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcGVlayhyZWdUMSk7CiAgICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTIyOSw3ICsyMjks
NyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRh
dGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZSwgcmVnVDIpOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lz
dGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJh
bWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENl
bGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAog
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6
UmV0dXJuUEMpOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAg
ICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVn
VDApOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhl
YWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0zMjEsNyArMzIxLDcgQEAg
SklUOjpDb2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NSZWZQdHI8
RXhlY3V0YWJsZVBvb2w+IGV4ZWN1dGEKICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgog
ICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJh
bWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9D
YWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBw
ZWVrKHJlZ1QxKTsKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVy
RmlsZTo6UmV0dXJuUEMpOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIEpJVDo6Q29kZVB0ciBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChQYXNzUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBleGVj
dXRhCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMik7CiAgICAgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdU
MSwgcmVnVDIpOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qx
LCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0zNjcsNyArMzY3
LDcgQEAgSklUOjpDb2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFBhc3NS
ZWZQdHI8RXhlY3V0YWJsZVBvb2w+IGV4ZWN1dGEKICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBk
YXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRD
ZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAK
ICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJl
c2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6
OlJldHVyblBDKTsKQEAgLTEyNzYsOCArMTI3NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
cG5hbWVzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZ2V0UG5hbWVzU3R1
YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIGdldFBuYW1lc1N0dWJDYWxsLmNhbGwoZHN0
KTsKICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IsIG1fanNTdHJpbmdzU2l6ZSkpLCByZWdUMyk7Ci0gICAgc3RvcmUzMihJbW0z
MigwKSwgYWRkcmVzc0ZvcihpKSk7Ci0gICAgc3RvcmUzMihyZWdUMywgYWRkcmVzc0ZvcihzaXpl
KSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGludFRhZ0ZvcihpKSk7CisgICAgc3Rv
cmUzMihJbW0zMigwKSwgaW50UGF5bG9hZEZvcihpKSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQz
MlRhZyksIGludFRhZ0ZvcihzaXplKSk7CisgICAgc3RvcmUzMihyZWdUMywgcGF5bG9hZEZvcihz
aXplKSk7CiAgICAgSnVtcCBlbmQgPSBqdW1wKCk7CiAKICAgICBpc05vdE9iamVjdC5saW5rKHRo
aXMpOwpAQCAtMTMwMywxMSArMTMwNSwxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXh0X3BuYW1l
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgSnVtcExpc3QgY2FsbEhhc1By
b3BlcnR5OwogCiAgICAgTGFiZWwgYmVnaW4odGhpcyk7Ci0gICAgbG9hZDMyKGFkZHJlc3NGb3Io
aSksIHJlZ1QwKTsKLSAgICBKdW1wIGVuZCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgYWRkcmVz
c0ZvcihzaXplKSk7CisgICAgbG9hZDMyKGludFBheWxvYWRGb3IoaSksIHJlZ1QwKTsKKyAgICBK
dW1wIGVuZCA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgaW50UGF5bG9hZEZvcihzaXplKSk7CiAK
ICAgICAvLyBHcmFiIGtleSBAIGkKLSAgICBsb2FkUHRyKGFkZHJlc3NGb3IoaXQpLCByZWdUMSk7
CisgICAgbG9hZFB0cihwYXlsb2FkRm9yKGl0KSwgcmVnVDEpOwogICAgIGxvYWRQdHIoQWRkcmVz
cyhyZWdUMSwgT0JKRUNUX09GRlNFVE9GKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IsIG1fanNTdHJp
bmdzKSksIHJlZ1QyKTsKICAgICBsb2FkMzIoQmFzZUluZGV4KHJlZ1QyLCByZWdUMCwgVGltZXNF
aWdodCksIHJlZ1QyKTsKICAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdG
b3IoZHN0KSk7CkBAIC0xMzE1LDEwICsxMzE3LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX25leHRf
cG5hbWUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIC8vIEluY3JlbWVu
dCBpCiAgICAgYWRkMzIoSW1tMzIoMSksIHJlZ1QwKTsKLSAgICBzdG9yZTMyKHJlZ1QwLCBhZGRy
ZXNzRm9yKGkpKTsKKyAgICBzdG9yZTMyKHJlZ1QwLCBpbnRQYXlsb2FkRm9yKGkpKTsKIAogICAg
IC8vIFZlcmlmeSB0aGF0IGkgaXMgdmFsaWQ6Ci0gICAgbG9hZFB0cihhZGRyZXNzRm9yKGJhc2Up
LCByZWdUMCk7CisgICAgbG9hZFB0cihwYXlsb2FkRm9yKGJhc2UpLCByZWdUMCk7CiAKICAgICAv
LyBUZXN0IGJhc2UncyBzdHJ1Y3R1cmUKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVD
VF9PRkZTRVRPRihKU0NlbGwsIG1fc3RydWN0dXJlKSksIHJlZ1QyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA2NDUzYmFiNWQ4YzA0OGVkOGY2YzM0
OTNjYjBmNDE4MWJlMzJmNGIzLi45OWM5Zjg1YzI1ZjhlMjI0ZDIwOTkxZTUzYzMxYjA2YzU2MTU4
YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCkBAIC0x
NTcsNiArMTU3LDExIEBAIG5hbWVzcGFjZSBKU0MgewogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRl
ZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludDMyVGFnID0gSlNWYWx1ZTo6SW50MzJUYWc7
CisjZWxzZQorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW50MzJUYWcgPSBKU0ltbWVk
aWF0ZTo6VGFnVHlwZU51bWJlciA+PiAzMjsKKyNlbmRpZgogICAgICAgICBpbmxpbmUgSnVtcCBl
bWl0TG9hZEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBw
YXlsb2FkKTsKICAgICAgICAgaW5saW5lIEp1bXAgZW1pdExvYWRJbnQzMih1bnNpZ25lZCB2aXJ0
dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBkc3QpOwogICAgICAgICBpbmxpbmUgSnVtcCBl
bWl0TG9hZERvdWJsZSh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgRlBSZWdpc3RlcklE
IGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKTsKQEAgLTE3Myw3ICsxNzgsMjggQEAgbmFtZXNwYWNl
IEpTQyB7CiAjZW5kaWYKIAogICAgICAgICBpbmxpbmUgQWRkcmVzcyBwYXlsb2FkRm9yKHVuc2ln
bmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAg
IGlubGluZSBBZGRyZXNzIGludFBheWxvYWRGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQg
YmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgaW5saW5lIEFkZHJlc3MgaW50VGFn
Rm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7
CiAgICAgICAgIGlubGluZSBBZGRyZXNzIGFkZHJlc3NGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lz
dGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAKKyAgICBwcml2YXRlOgorI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHN0cnVjdCBJbnRWYWx1ZURlc2NyaXB0b3IgeworICAg
ICAgICAgICAgdW5pb24geworI2lmIENQVShCSUdfRU5ESUFOKQorICAgICAgICAgICAgICAgIHN0
cnVjdCB7CisgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGFnOworICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHBheWxvYWQ7CisgICAgICAgICAgICAgICAgfSBhc0JpdHM7CisjZWxzZQor
ICAgICAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcGF5
bG9hZDsKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0YWc7CisgICAgICAgICAgICAgICAg
fSBhc0JpdHM7CisjZW5kaWYKKyAgICAgICAgICAgIH0gdTsKKyAgICAgICAgfTsKKyNlbmRpZgog
ICAgIH07CiAKICAgICBzdHJ1Y3QgVGh1bmtIZWxwZXJzIHsKQEAgLTIxNCw2ICsyNDAsMTYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2UsICh2aXJ0dWFsUmVn
aXN0ZXJJbmRleCAqIHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUs
IHUuYXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKKyAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MgSlNJbnRlcmZhY2VKSVQ6OmludFBheWxvYWRGb3IodW5zaWduZWQgdmlydHVhbFJl
Z2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiBwYXls
b2FkRm9yKHZpcnR1YWxSZWdpc3RlckluZGV4LCBiYXNlKTsKKyAgICB9CisKKyAgICBpbmxpbmUg
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MgSlNJbnRlcmZhY2VKSVQ6OmludFRhZ0Zvcih1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgYmFzZSk7CisgICAgfQorCiAgICAg
aW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZERvdWJs
ZSh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgRlBSZWdpc3RlcklEIGRzdCwgUmVnaXN0
ZXJJRCBzY3JhdGNoKQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludD4odmly
dHVhbFJlZ2lzdGVySW5kZXgpIDwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpOwpAQCAtMjc5
LDYgKzMxNSwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0
PGludD4odmlydHVhbFJlZ2lzdGVySW5kZXgpIDwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgp
OwogICAgICAgICByZXR1cm4gYWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgYmFzZSk7
CiAgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50ZXJmYWNl
SklUOjppbnRQYXlsb2FkRm9yKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3Rl
cklEIGJhc2UpCisgICAgeworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50Pih2aXJ0dWFs
UmVnaXN0ZXJJbmRleCkgPCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCk7CisgICAgICAgIHJl
dHVybiBBZGRyZXNzKGJhc2UsICh2aXJ0dWFsUmVnaXN0ZXJJbmRleCAqIHNpemVvZihSZWdpc3Rl
cikpICsgT0JKRUNUX09GRlNFVE9GKEludFZhbHVlRGVzY3JpcHRvciwgdS5hc0JpdHMucGF5bG9h
ZCkpOworICAgIH0KKyAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MgSlNJbnRlcmZh
Y2VKSVQ6OmludFRhZ0Zvcih1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJ
RCBiYXNlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludD4odmlydHVhbFJl
Z2lzdGVySW5kZXgpIDwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpOworICAgICAgICByZXR1
cm4gQWRkcmVzcyhiYXNlLCAodmlydHVhbFJlZ2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0ZXIp
KSArIE9CSkVDVF9PRkZTRVRPRihJbnRWYWx1ZURlc2NyaXB0b3IsIHUuYXNCaXRzLnRhZykpOwor
ICAgIH0KICNlbmRpZgogCiAgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50
ZXJmYWNlSklUOjphZGRyZXNzRm9yKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdp
c3RlcklEIGJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNp
YWxpemVkVGh1bmtKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRU
aHVua0pJVC5oCmluZGV4IDVjNTkzZDk5ZDg2MDQ5YzFiZTY5NjY5ZGE2M2ZlNGFkOTJlOWEzMDIu
LjhiZDRlYzQ5YzhiYzJiNzE1MTljYzQ4NDdjOWY0YjZkMjIxNzUyODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCkBAIC04Nyw3ICs4Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJl
Z1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7Ci0gICAgICAgICAgICBsb2Fk
UHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUg
KiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAg
ICBsb2FkUHRyKHBheWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgY2FsbEZyYW1l
UmVnaXN0ZXIpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICByZXQoKTsKICAgICAg
ICAgfQogICAgICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNUX09GRlNF
VE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykgLSBzaXplb2YoZG91YmxlKSksIHJlZ1QxKTsKICAg
ICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNUX09G
RlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpIC0gc2l6ZW9mKGRvdWJsZSkpLCByZWdU
MCk7CiAjZW5kaWYKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rl
ciwgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6ZW9mKFJlZ2lzdGVyKSksIGNh
bGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcihSZWdpc3Rl
ckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3RlciksIGNhbGxGcmFtZVJlZ2lzdGVy
KTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTExMCw3ICsxMTAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAg
ICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSW50MzIoKTsK
LSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJG
aWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcihSZWdpc3RlckZpbGU6OkNhbGxl
ckZyYW1lLCBjYWxsRnJhbWVSZWdpc3RlciksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTExOSw3ICsxMTksNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAgbW92ZShz
cmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSlNDZWxsKCk7Ci0gICAgICAgICAg
ICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVy
RnJhbWUgKiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAg
ICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgY2Fs
bEZyYW1lUmVnaXN0ZXIpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICByZXQoKTsK
ICAgICAgICAgfQogICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85543</attachid>
            <date>2011-03-11 15:09:47 -0800</date>
            <delta_ts>2011-03-11 16:09:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56214-20110311150946.patch</filename>
            <type>text/plain</type>
            <size>40388</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
YTBhNmQ3ZTY1OWI2ZTg5YzZhYTZjOTVlNmQ2OTg3ZGYyNTJmMzcuLmJkZTRlNmI3NWY3ZjIxZmQ2
MjlmYTUwOWYzOWFjMzQyMzBmODBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDExLTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFs
bCB2YWx1ZXMgYXJlIGNvcnJlY3RseSB0YWdnZWQgaW4gdGhlIHJlZ2lzdGVyZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTQKKworICAgICAg
ICBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgdGhhdCBhbGwgSlNDZWxsIHBvaW50ZXJzIHdyaXR0ZW4g
dG8KKyAgICAgICAgdGhlIHJlZ2lzdGVyZmlsZSBhcmUgY29ycmVjdGx5IHRhZ2dlZCBhcyBKU0Nl
bGxzLCBhbmQgcmVwbGFjZXMKKyAgICAgICAgcmF3IGludCB1c2FnZSB3aXRoIHRoZSBpbW1lZGlh
dGUgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgRm9yIHBlcmZvcm1hbmNlLCByZWdpc3RlciBw
cmVzc3VyZSwgYW5kIGdlbmVyYWwgc2FuZW5lc3MgcmVhc29ucworICAgICAgICBJJ3ZlIGFkZGVk
IGFic3RyYWN0aW9ucyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgdGFnCisgICAgICAgIGFu
ZCBwYXlsb2FkIG9mIGludGVnZXIgcmVnaXN0ZXJzIGRpcmVjdGx5IGZvciB0aGUgSlNWQUxVRTY0
CisgICAgICAgIGVuY29kaW5nLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OndpdGhJbnQpOgorICAgICAgICAoSlNDOjpSZWdpc3Rl
cjo6d2l0aENhbGxlZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoSlNDOjpSZWdpc3Rlcjo6aSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphY3RpdmF0
aW9uKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
UmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6
OnNjb3BlQ2hhaW4pOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2Fs
bC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJh
bWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAg
KEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSk6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxT
bG93Q2FzZSk6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRJ
bnRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X25leHRfcG5hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9hZF92YXJhcmdzKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb2FkX3ZhcmFyZ3MpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVz
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25leHRfcG5hbWUpOgorICAgICAgICAqIGpp
dC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6aW50UGF5
bG9hZEZvcik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IpOgorICAg
ICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6CisgICAgICAgIChKU0M6OlNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJldHVybkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRo
dW5rSklUOjpyZXR1cm5Eb3VibGUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklU
OjpyZXR1cm5JbnQzMik6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVy
bkpTQ2VsbCk6CisKIDIwMTEtMDMtMTEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzN2QxYzU3MDQ5YzI0NjJlYjk3MzQ4NjYxNDhmMTllZDRiZGIz
ZmJlLi45ZjhkNDlhNjk4NWNmZDlhMzVlM2Y1MTIyNTRjMzU3NmM1MzFiYzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0NCw2ICsyNTQ0LDcgQEAKIAkJCX07CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKKwkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA1ZWMyYTNmOThhNDU4ZDE2YTJmMjlh
Njk3ZmQ0YjZjZTQzZDA0NWQ4Li41ZGY0ODQxNGFhYzdiODZkMWQ3OGUzOTEyZDcyZjc5NjIyNzc5
Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNp
bmNsdWRlICJTY29wZUNoYWluLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAppbmRleCAzOTQ0NjQyNjgwNjM2OTQ1ODQ5
MTBhZTI3Y2I2NmNiMDgxZDRkYWZjLi44ZTljYmViMmIyZjNiZTI2MmFkZTRjNjRkMDE1YWYxZjI4
NWEwOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIu
aApAQCAtNzMsMjkgKzczLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBS
ZWdpc3RlciB3aXRoSW50KGludDMyX3QgaSkKICAgICAgICAgewotICAgICAgICAgICAgUmVnaXN0
ZXIgcjsKLSAgICAgICAgICAgIHIudS5pID0gaTsKKyAgICAgICAgICAgIFJlZ2lzdGVyIHIgPSBq
c051bWJlcihpKTsKICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICB9CiAKLSAgICAgICAg
c3RhdGljIFJlZ2lzdGVyIHdpdGhDYWxsZWUoSlNPYmplY3QqIGNhbGxlZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgUmVnaXN0ZXIgcjsKLSAgICAgICAgICAgIHIudS5mdW5jdGlvbiA9IGNhbGxl
ZTsKLSAgICAgICAgICAgIHJldHVybiByOwotICAgICAgICB9CisgICAgICAgIHN0YXRpYyBpbmxp
bmUgUmVnaXN0ZXIgd2l0aENhbGxlZShKU09iamVjdCogY2FsbGVlKTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgIGludDMyX3QgaTsKICAgICAgICAgICAgIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlOwotCi0gICAgICAgICAgICBKU0FjdGl2YXRpb24qIGFjdGl2YXRp
b247CiAgICAgICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKICAgICAgICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrOwotICAgICAgICAgICAgSlNPYmplY3QqIGZ1bmN0aW9uOwotICAgICAg
ICAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3I7Ci0gICAg
ICAgICAgICBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbjsKICAgICAgICAgICAgIEluc3RydWN0
aW9uKiB2UEM7CiAgICAgICAgIH0gdTsKICAgICB9OwpAQCAtMTMxLDEyICsxMTksNiBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIC8vIEludGVycHJldGVyIGZ1bmN0aW9ucwogCi0gICAgQUxXQVlT
X0lOTElORSBSZWdpc3RlciYgUmVnaXN0ZXI6Om9wZXJhdG9yPShKU0FjdGl2YXRpb24qIGFjdGl2
YXRpb24pCi0gICAgewotICAgICAgICB1LmFjdGl2YXRpb24gPSBhY3RpdmF0aW9uOwotICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCiAgICAgQUxXQVlTX0lOTElORSBSZWdpc3RlciYgUmVn
aXN0ZXI6Om9wZXJhdG9yPShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICB7CiAgICAgICAgIHUu
Y2FsbEZyYW1lID0gY2FsbEZyYW1lOwpAQCAtMTU1LDI4ICsxMzcsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIFJl
Z2lzdGVyJiBSZWdpc3Rlcjo6b3BlcmF0b3I9KFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQot
ICAgIHsKLSAgICAgICAgdS5zY29wZUNoYWluID0gc2NvcGVDaGFpbjsKLSAgICAgICAgcmV0dXJu
ICp0aGlzOwotICAgIH0KLQotICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpv
cGVyYXRvcj0oSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IpCi0g
ICAgewotICAgICAgICB1LnByb3BlcnR5TmFtZUl0ZXJhdG9yID0gcHJvcGVydHlOYW1lSXRlcmF0
b3I7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KICAgICBBTFdBWVNfSU5MSU5FIGlu
dDMyX3QgUmVnaXN0ZXI6OmkoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHUuaTsKKyAg
ICAgICAgcmV0dXJuIGpzVmFsdWUoKS5hc0ludDMyKCk7CiAgICAgfQotICAgIAotICAgIEFMV0FZ
U19JTkxJTkUgSlNBY3RpdmF0aW9uKiBSZWdpc3Rlcjo6YWN0aXZhdGlvbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gdS5hY3RpdmF0aW9uOwotICAgIH0KLSAgICAKKwogICAgIEFMV0FZ
U19JTkxJTkUgQ2FsbEZyYW1lKiBSZWdpc3Rlcjo6Y2FsbEZyYW1lKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiB1LmNhbGxGcmFtZTsKQEAgLTE4NiwyMiArMTUxLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgewogICAgICAgICByZXR1cm4gdS5jb2RlQmxvY2s7CiAgICAgfQotICAgIAot
ICAgIEFMV0FZU19JTkxJTkUgSlNPYmplY3QqIFJlZ2lzdGVyOjpmdW5jdGlvbigpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gdS5mdW5jdGlvbjsKLSAgICB9Ci0gICAgCi0gICAgQUxXQVlT
X0lOTElORSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBSZWdpc3Rlcjo6cHJvcGVydHlOYW1lSXRl
cmF0b3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHUucHJvcGVydHlOYW1lSXRlcmF0
b3I7Ci0gICAgfQotICAgIAotICAgIEFMV0FZU19JTkxJTkUgU2NvcGVDaGFpbk5vZGUqIFJlZ2lz
dGVyOjpzY29wZUNoYWluKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LnNjb3BlQ2hh
aW47Ci0gICAgfQotICAgIAorCiAgICAgQUxXQVlTX0lOTElORSBJbnN0cnVjdGlvbiogUmVnaXN0
ZXI6OnZQQygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdS52UEM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCBiZTA2NWQwNzIzNDQ0ZGI5YTVmZWY2NGExMjk3ZGUzOTJiZjA3Mzlj
Li5hZTYwY2NiMmQwYWY0YTBlM2JlNDY0ZjE1YzA5M2VhNzkyOWUyYWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTg1Myw2ICs4NTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dm9pZCBlbWl0SW5pdFJlZ2lzdGVyKHVuc2lnbmVkIGRzdCk7CiAKICAgICAgICAgdm9pZCBlbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxG
cmFtZUhlYWRlckVudHJ5IGVudHJ5KTsKKyAgICAgICAgdm9pZCBlbWl0UHV0Q2VsbFRvQ2FsbEZy
YW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJF
bnRyeSk7CisgICAgICAgIHZvaWQgZW1pdFB1dEludFRvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVy
SUQgZnJvbSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSk7CiAgICAgICAgIHZv
aWQgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKHZvaWQqIHZhbHVlLCBSZWdpc3Rl
ckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KTsKICAgICAgICAgdm9pZCBlbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5
IGVudHJ5LCBSZWdpc3RlcklEIHRvLCBSZWdpc3RlcklEIGZyb20gPSBjYWxsRnJhbWVSZWdpc3Rl
cik7CiAgICAgICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMihSZWdpc3RlckZp
bGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5LCBSZWdpc3RlcklEIHRvLCBSZWdpc3RlcklE
IGZyb20gPSBjYWxsRnJhbWVSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcAppbmRleCA1MjRlNTc2YjdmNjk5YzAyOTVjNmIxYTViYjY2ODA4YzgxOWFkYjRjLi45ZWM0
Y2JjYjc2YjFiM2JmZmU0Nzg0YzdiM2MwMjIzMDAxYzJlMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTQ4LDEwICs0OCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
dm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxJbml0aWFsaXplQ2FsbEZyYW1lKCkKIHsKLSAgICBzdG9y
ZTMyKHJlZ1QxLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkFyZ3Vt
ZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0gICAgbG9h
ZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZUNo
YWluKSksIHJlZ1QzKTsgLy8gbmV3U2NvcGVDaGFpbgotICAgIHN0b3JlUHRyKHJlZ1QwLCBBZGRy
ZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBzdG9yZVB0cihyZWdUMywgQWRkcmVzcyhj
YWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIC8vIHJlZ1QwIGhvbGRzIGNhbGxlZSwgcmVn
VDEgaG9sZHMgYXJnQ291bnQKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZT
RVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hhaW4pKSwgcmVnVDMpOyAvLyBzY29wZUNoYWluCisg
ICAgZW1pdFB1dEludFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OkFyZ3Vt
ZW50Q291bnQpOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDAsIFJlZ2lz
dGVyRmlsZTo6Q2FsbGVlKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qz
LCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jYWxs
X3B1dF9yZXN1bHQoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQpAQCAtNjcsNiArNjgsNyBAQCB2
b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQog
ICAgIGludCByZWdpc3Rlck9mZnNldCA9IGluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKIAogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJnQ291bnRSZWdpc3RlciwgcmVnVDEpOworICAgIGVt
aXRGYXN0QXJpdGhJbW1Ub0ludChyZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
YWxsZWUsIHJlZ1QwKTsKICAgICBhZGRQdHIoSW1tMzIocmVnaXN0ZXJPZmZzZXQpLCByZWdUMSwg
cmVnVDIpOwogCkBAIC0xOTksOCArMjAxLDkgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bj
b2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQgY2EKICAg
ICAvLyBOb3RlIHRoYXQgdGhpcyBvbWl0cyB0byBzZXQgdXAgUmVnaXN0ZXJGaWxlOjpDb2RlQmxv
Y2ssIHdoaWNoIGlzIHNldCBpbiB0aGUgY2FsbGVlCiAKICAgICBsb2FkUHRyKEFkZHJlc3MocmVn
VDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlQ2hhaW4pKSwgcmVnVDEpOyAv
LyBuZXdTY29wZUNoYWluCi0KLSAgICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhj
YWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVu
dENvdW50KSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICAKKyAg
ICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwgaW50VGFnRm9yKHJlZ2lzdGVyT2Zmc2V0ICsgUmVn
aXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSk7CisgICAgc3RvcmUzMihJbW0zMihhcmdDb3VudCks
IGludFBheWxvYWRGb3IocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291
bnQpKTsKICAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVS
ZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkgKiBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAgICAgc3RvcmVQdHIocmVnVDAs
IEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmls
ZTo6Q2FsbGVlKSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKICAgICBz
dG9yZVB0cihyZWdUMSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0
ICsgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcApp
bmRleCBhYzIzMWE5YTUyYWUwZWZkMzY1N2E1ZWQzZWU1YWYwNTNhMTRkNzhhLi41MWIwN2VlOGRm
ZmQ1MjJhY2FjODc5MDNjY2Q5MjQzMDRjNzA2NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBAIC00OSwxMCArNDksMTAgQEAgbmFtZXNwYWNlIEpTQyB7
CiB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJhbWUoKQogewogICAgIC8v
IHJlZ1QwIGhvbGRzIGNhbGxlZSwgcmVnVDEgaG9sZHMgYXJnQ291bnQKLSAgICBzdG9yZTMyKHJl
Z1QxLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291
bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAgICAgbG9hZFB0cihB
ZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZUNoYWluKSks
IHJlZ1QzKTsgLy8gc2NvcGVDaGFpbgotICAgIHN0b3JlUHRyKHJlZ1QwLCBBZGRyZXNzKGNhbGxG
cmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkpKTsgLy8gY2FsbGVlCi0gICAgc3RvcmVQdHIocmVnVDMsIEFkZHJlc3Mo
Y2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsgLy8gc2NvcGVDaGFpbgorICAgIGVtaXRQdXRJbnRU
b0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KTsKKyAg
ICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QwLCBSZWdpc3RlckZpbGU6OkNhbGxl
ZSk7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxl
OjpTY29wZUNoYWluKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2FsbF9wdXRfcmVzdWx0KElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbikKQEAgLTc3LDcgKzc3LDggQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGxWYXJhcmdzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAvLyBTcGVjdWxh
dGl2ZWx5IHJvbGwgdGhlIGNhbGxmcmFtZSwgYXNzdW1pbmcgYXJnQ291bnQgd2lsbCBtYXRjaCB0
aGUgYXJpdHkuCiAgICAgbXVsMzIoSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIHJlZ1QzLCByZWdU
Myk7CiAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7Ci0gICAgc3RvcmVQdHIo
Y2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDMsIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJh
bWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgc3RvcmUzMihJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUs
IHJlZ1QzKSk7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHBheWxvYWRGb3IoUmVn
aXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDMpKTsKICAgICBtb3ZlKHJlZ1QzLCBjYWxsRnJh
bWVSZWdpc3Rlcik7CiAKICAgICBtb3ZlKHJlZ1QyLCByZWdUMSk7IC8vIGFyZ0NvdW50CkBAIC0y
MDgsNyArMjA5LDggQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQs
IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQpCiAgICAgYWRkU2xvd0Nhc2UoYnJh
bmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNG
dW5jdGlvblZQdHIpKSk7CiAKICAgICAvLyBTcGVjdWxhdGl2ZWx5IHJvbGwgdGhlIGNhbGxmcmFt
ZSwgYXNzdW1pbmcgYXJnQ291bnQgd2lsbCBtYXRjaCB0aGUgYXJpdHkuCi0gICAgc3RvcmVQdHIo
Y2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChSZWdpc3RlckZp
bGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQpICogc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRh
Z0ZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQsIGNhbGxGcmFt
ZVJlZ2lzdGVyKSk7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHBheWxvYWRGb3Io
UmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0LCBjYWxsRnJhbWVSZWdp
c3RlcikpOwogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbW92ZShJbW0z
MihhcmdDb3VudCksIHJlZ1QxKTsKIApAQCAtMjgwLDEwICsyODIsMTIgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwg
dW5zaWduZWQgY2EKICAgICAvLyBOb3RlIHRoYXQgdGhpcyBvbWl0cyB0byBzZXQgdXAgUmVnaXN0
ZXJGaWxlOjpDb2RlQmxvY2ssIHdoaWNoIGlzIHNldCBpbiB0aGUgY2FsbGVlCiAgICAgbG9hZFB0
cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZUNoYWlu
KSksIHJlZ1QyKTsKIAotICAgIHN0b3JlMzIoSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKGNhbGxG
cmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291
bnQpICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwotICAgIHN0b3JlUHRy
KGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCAocmVnaXN0ZXJP
ZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwg
dGFnRm9yKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSk7Cisg
ICAgc3RvcmUzMihJbW0zMihhcmdDb3VudCksIHBheWxvYWRGb3IocmVnaXN0ZXJPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKTsKKyAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdp
c3RlciwgcGF5bG9hZEZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZz
ZXQsIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAgZW1pdFN0b3JlKHJlZ2lzdGVyT2Zmc2V0ICsg
UmVnaXN0ZXJGaWxlOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCk7Ci0gICAgc3RvcmVQdHIocmVnVDIs
IEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmls
ZTo6U2NvcGVDaGFpbikgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Cisg
ICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9yKHJlZ2lzdGVyT2Zmc2V0
ICsgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKSk7CisgICAgc3RvcmUzMihyZWdUMiwgcGF5bG9h
ZEZvcihyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpOwogICAgIGFk
ZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVS
ZWdpc3Rlcik7CiAKICAgICAvLyBDYWxsIHRvIHRoZSBjYWxsZWUKQEAgLTMwOSw3ICszMTMsOCBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OgogICAgIEp1bXAgY2FsbExpbmtGYWlsTm90SlNGdW5j
dGlvbiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCksIEltbVB0cihtX2dsb2Jh
bERhdGEtPmpzRnVuY3Rpb25WUHRyKSk7CiAKICAgICAvLyBTcGVjdWxhdGl2ZWx5IHJvbGwgdGhl
IGNhbGxmcmFtZSwgYXNzdW1pbmcgYXJnQ291bnQgd2lsbCBtYXRjaCB0aGUgYXJpdHkuCi0gICAg
c3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQpICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIHRhZ0ZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICsgcmVnaXN0ZXJPZmZzZXQs
IGNhbGxGcmFtZVJlZ2lzdGVyKSk7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHBh
eWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0LCBjYWxs
RnJhbWVSZWdpc3RlcikpOwogICAgIGFkZFB0cihJbW0zMihyZWdpc3Rlck9mZnNldCAqIHN0YXRp
Y19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAg
bW92ZShJbW0zMihhcmdDb3VudCksIHJlZ1QxKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZU1ldGhvZHMuaAppbmRleCAyMGNmZTRjMGUxZmIwYjY4ZjUwYTliZjY1ZDNm
NDZkYTFiNjMwNzk4Li43MTM3NDYwZmMzNjc3ZTFhZDZhNzU0ZTgyYTdiZjI5MzI3NmQyY2ZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaApAQCAtNTIs
NyArNTIsMjEgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIEpJVDo6Z2V0Q29uc3RhbnRPcGVyYW5k
KHVuc2lnbmVkIHNyYykKIAogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJF
bnRyeSBlbnRyeSkKIHsKLSAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lz
dGVyLCBlbnRyeSAqIHNpemVvZihSZWdpc3RlcikpKTsKKyAgICBzdG9yZVB0cihmcm9tLCBwYXls
b2FkRm9yKGVudHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOworfQorCitBTFdBWVNfSU5MSU5FIHZv
aWQgSklUOjplbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVn
aXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKK3sKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0ZvcihlbnRy
eSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKKyNlbmRpZgorICAgIHN0b3JlUHRyKGZyb20sIHBheWxv
YWRGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lzdGVyKSk7Cit9CisKK0FMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OmVtaXRQdXRJbnRUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20sIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCit7CisgICAgc3RvcmUzMihJbW0z
MihJbnQzMlRhZyksIGludFRhZ0ZvcihlbnRyeSwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKKyAgICBz
dG9yZTMyKGZyb20sIGludFBheWxvYWRGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CiB9
CiAKIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhl
YWRlcih2b2lkKiB2YWx1ZSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRy
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGY3ZWZiNTli
YzVjNTNmNTUwODI1ZDE2OWI4Yjc4YWIzMWJhYTlkNTguLjNlYjcxYWNjYzhlOWM4N2ZjYWRjNjBl
MDFjODMyNmY5NzE0ZGVhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29tcGlsZUNU
SU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAgICAgLy8g
Z2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwot
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNo
YWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcGVlayhyZWdUMSk7CiAgICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTIyMiw3ICsyMjIs
NyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRh
dGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZSwgcmVnVDIpOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lz
dGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJh
bWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENl
bGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAog
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6
UmV0dXJuUEMpOwpAQCAtMjQzLDcgKzI0Myw3IEBAIEpJVDo6TGFiZWwgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGlzQ29uCiAg
ICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVn
VDApOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhl
YWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC05MDIsOCArOTAyLDkgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3BuYW1lcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGdldFBuYW1lc1N0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsKICAgICBnZXRQ
bmFtZXNTdHViQ2FsbC5jYWxsKGRzdCk7CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIE9CSkVD
VF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLCBtX2pzU3RyaW5nc1NpemUpKSwgcmVn
VDMpOwotICAgIHN0b3JlMzIoSW1tMzIoMCksIGFkZHJlc3NGb3IoaSkpOwotICAgIHN0b3JlMzIo
cmVnVDMsIGFkZHJlc3NGb3Ioc2l6ZSkpOworICAgIHN0b3JlUHRyKHRhZ1R5cGVOdW1iZXJSZWdp
c3RlciwgcGF5bG9hZEZvcihpKSk7CisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGludFRh
Z0ZvcihzaXplKSk7CisgICAgc3RvcmUzMihyZWdUMywgaW50UGF5bG9hZEZvcihzaXplKSk7CiAg
ICAgSnVtcCBlbmQgPSBqdW1wKCk7CiAKICAgICBpc05vdE9iamVjdC5saW5rKHRoaXMpOwpAQCAt
OTMxLDggKzkzMiw4IEBAIHZvaWQgSklUOjplbWl0X29wX25leHRfcG5hbWUoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBKdW1wTGlzdCBjYWxsSGFzUHJvcGVydHk7CiAKICAg
ICBMYWJlbCBiZWdpbih0aGlzKTsKLSAgICBsb2FkMzIoYWRkcmVzc0ZvcihpKSwgcmVnVDApOwot
ICAgIEp1bXAgZW5kID0gYnJhbmNoMzIoRXF1YWwsIHJlZ1QwLCBhZGRyZXNzRm9yKHNpemUpKTsK
KyAgICBsb2FkMzIoaW50UGF5bG9hZEZvcihpKSwgcmVnVDApOworICAgIEp1bXAgZW5kID0gYnJh
bmNoMzIoRXF1YWwsIHJlZ1QwLCBpbnRQYXlsb2FkRm9yKHNpemUpKTsKIAogICAgIC8vIEdyYWIg
a2V5IEAgaQogICAgIGxvYWRQdHIoYWRkcmVzc0ZvcihpdCksIHJlZ1QxKTsKQEAgLTk0NCw3ICs5
NDUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXh0X3BuYW1lKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAKICAgICAvLyBJbmNyZW1lbnQgaQogICAgIGFkZDMyKEltbTMyKDEpLCBy
ZWdUMCk7Ci0gICAgc3RvcmUzMihyZWdUMCwgYWRkcmVzc0ZvcihpKSk7CisgICAgc3RvcmUzMihy
ZWdUMCwgaW50UGF5bG9hZEZvcihpKSk7CiAKICAgICAvLyBWZXJpZnkgdGhhdCBpIGlzIHZhbGlk
OgogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDApOwpAQCAtMTY4OSw3ICsx
NjkwLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9hZF92YXJhcmdzKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAjZW5kaWYKICAgICAvLyBMb2FkIGFyZyBjb3VudCBpbnRvIHJlZ1Qw
CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMihSZWdpc3RlckZpbGU6OkFyZ3VtZW50
Q291bnQsIHJlZ1QwKTsKLSAgICBzdG9yZVB0cihyZWdUMCwgYWRkcmVzc0ZvcihhcmdDb3VudERz
dCkpOworICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3IoYXJnQ291bnREc3Qp
KTsKKyAgICBzdG9yZTMyKHJlZ1QwLCBpbnRQYXlsb2FkRm9yKGFyZ0NvdW50RHN0KSk7CiAgICAg
SnVtcCBlbmRCcmFuY2ggPSBicmFuY2gzMihFcXVhbCwgcmVnVDAsIEltbTMyKDEpKTsKIAogICAg
IG11bDMyKEltbTMyKHNpemVvZihSZWdpc3RlcikpLCByZWdUMCwgcmVnVDMpOwpAQCAtMTcyNyw4
ICsxNzI5LDkgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvYWRfdmFyYXJncyhJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0MKICAgICBKSVRTdHViQ2FsbCBzdHVi
Q2FsbCh0aGlzLCBjdGlfb3BfbG9hZF92YXJhcmdzKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMihhcmdzT2Zmc2V0KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwotICAgIC8vIFN0b3Jl
cyBhIG5ha2VkIGludDMyIGluIHRoZSByZWdpc3RlciBmaWxlLgotICAgIHN0b3JlMzIocmV0dXJu
VmFsdWVSZWdpc3RlciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgYXJnQ291bnREc3QgKiBz
aXplb2YoUmVnaXN0ZXIpKSk7CisgICAgCisgICAgc3RvcmUzMihJbW0zMihJbnQzMlRhZyksIGlu
dFRhZ0ZvcihhcmdDb3VudERzdCkpOworICAgIHN0b3JlMzIocmV0dXJuVmFsdWVSZWdpc3Rlciwg
aW50UGF5bG9hZEZvcihhcmdDb3VudERzdCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9uZXdf
ZnVuYyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDdkMzY5N2UyMjNkNDUxOGViMjZm
OTYxZmEyMmE0OWZiZWUyM2M2NzMuLmEzMjI3ZTU2YjVhNmZiMDNhZjk3MzA5NmM3YzhlOTM1NGU2
Njg5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKQEAgLTIwNSw3ICsyMDUsNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElO
YXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdl
dCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIo
UmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QwKTsKLSAg
ICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFp
bik7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxl
OjpTY29wZUNoYWluKTsKIAogICAgIHBlZWsocmVnVDEpOwogICAgIGVtaXRQdXRUb0NhbGxGcmFt
ZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0yMjksNyArMjI5LDcg
QEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRh
LgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVy
RnJhbWUsIHJlZ1QyKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3Rl
ckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMik7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1l
SGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxs
VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAg
ICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJlc2Vy
dmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6OlJl
dHVyblBDKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElOYXRpdmVDYWxsKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAg
IC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwogICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1Qw
KTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2Nv
cGVDaGFpbik7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0
ZXJGaWxlOjpTY29wZUNoYWluKTsKIAogICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFk
ZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMzIxLDcgKzMyMSw3IEBAIEpJ
VDo6Q29kZVB0ciBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChQYXNzUmVmUHRyPEV4
ZWN1dGFibGVQb29sPiBleGVjdXRhCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAg
ICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1l
LCByZWdUMCk7CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxl
OjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRl
cihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcGVl
ayhyZWdUMSk7CiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZp
bGU6OlJldHVyblBDKTsKQEAgLTM0NCw3ICszNDQsNyBAQCBKSVQ6OkNvZGVQdHIgSklUOjpwcml2
YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoUGFzc1JlZlB0cjxFeGVjdXRhYmxlUG9vbD4gZXhlY3V0
YQogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDIpOwogICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEs
IHJlZ1QyKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmls
ZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwg
UmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAogICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJh
bWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMzY3LDcgKzM2Nyw3
IEBAIEpJVDo6Q29kZVB0ciBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChQYXNzUmVm
UHRyPEV4ZWN1dGFibGVQb29sPiBleGVjdXRhCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0
YS4KICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxl
ckZyYW1lLCByZWdUMCk7CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0
ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRQdXRUb0NhbGxGcmFt
ZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2Vs
bFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAg
ICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNl
cnZlZAogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpS
ZXR1cm5QQyk7CkBAIC0xMjc2LDggKzEyNzYsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Bu
YW1lcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGdldFBuYW1lc1N0dWJD
YWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsKICAgICBnZXRQbmFtZXNTdHViQ2FsbC5jYWxsKGRzdCk7
CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLCBtX2pzU3RyaW5nc1NpemUpKSwgcmVnVDMpOwotICAgIHN0b3JlMzIoSW1tMzIo
MCksIGFkZHJlc3NGb3IoaSkpOwotICAgIHN0b3JlMzIocmVnVDMsIGFkZHJlc3NGb3Ioc2l6ZSkp
OworICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3IoaSkpOworICAgIHN0b3Jl
MzIoSW1tMzIoMCksIGludFBheWxvYWRGb3IoaSkpOworICAgIHN0b3JlMzIoSW1tMzIoSW50MzJU
YWcpLCBpbnRUYWdGb3Ioc2l6ZSkpOworICAgIHN0b3JlMzIocmVnVDMsIHBheWxvYWRGb3Ioc2l6
ZSkpOwogICAgIEp1bXAgZW5kID0ganVtcCgpOwogCiAgICAgaXNOb3RPYmplY3QubGluayh0aGlz
KTsKQEAgLTEzMDMsMTEgKzEzMDUsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbmV4dF9wbmFtZShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEp1bXBMaXN0IGNhbGxIYXNQcm9w
ZXJ0eTsKIAogICAgIExhYmVsIGJlZ2luKHRoaXMpOwotICAgIGxvYWQzMihhZGRyZXNzRm9yKGkp
LCByZWdUMCk7Ci0gICAgSnVtcCBlbmQgPSBicmFuY2gzMihFcXVhbCwgcmVnVDAsIGFkZHJlc3NG
b3Ioc2l6ZSkpOworICAgIGxvYWQzMihpbnRQYXlsb2FkRm9yKGkpLCByZWdUMCk7CisgICAgSnVt
cCBlbmQgPSBicmFuY2gzMihFcXVhbCwgcmVnVDAsIGludFBheWxvYWRGb3Ioc2l6ZSkpOwogCiAg
ICAgLy8gR3JhYiBrZXkgQCBpCi0gICAgbG9hZFB0cihhZGRyZXNzRm9yKGl0KSwgcmVnVDEpOwor
ICAgIGxvYWRQdHIocGF5bG9hZEZvcihpdCksIHJlZ1QxKTsKICAgICBsb2FkUHRyKEFkZHJlc3Mo
cmVnVDEsIE9CSkVDVF9PRkZTRVRPRihKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLCBtX2pzU3RyaW5n
cykpLCByZWdUMik7CiAgICAgbG9hZDMyKEJhc2VJbmRleChyZWdUMiwgcmVnVDAsIFRpbWVzRWln
aHQpLCByZWdUMik7CiAgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgdGFnRm9y
KGRzdCkpOwpAQCAtMTMxNSwxMCArMTMxNywxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXh0X3Bu
YW1lKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICAvLyBJbmNyZW1lbnQg
aQogICAgIGFkZDMyKEltbTMyKDEpLCByZWdUMCk7Ci0gICAgc3RvcmUzMihyZWdUMCwgYWRkcmVz
c0ZvcihpKSk7CisgICAgc3RvcmUzMihyZWdUMCwgaW50UGF5bG9hZEZvcihpKSk7CiAKICAgICAv
LyBWZXJpZnkgdGhhdCBpIGlzIHZhbGlkOgotICAgIGxvYWRQdHIoYWRkcmVzc0ZvcihiYXNlKSwg
cmVnVDApOworICAgIGxvYWRQdHIocGF5bG9hZEZvcihiYXNlKSwgcmVnVDApOwogCiAgICAgLy8g
VGVzdCBiYXNlJ3Mgc3RydWN0dXJlCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNDZWxsLCBtX3N0cnVjdHVyZSkpLCByZWdUMik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKaW5kZXggNjQ1M2JhYjVkOGMwNDhlZDhmNmMzNDkz
Y2IwZjQxODFiZTMyZjRiMy4uODg2ZDI3Y2ZlMWU0OTEyNTE0YWI4NTFhMDAzNGIwYjMxZTgzMzJl
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKSVRTdHVicy5oIgog
I2luY2x1ZGUgIkpTSW1tZWRpYXRlLmgiCisjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgiCiAjaW5jbHVkZSA8
d3RmL0Fsd2F5c0lubGluZS5oPgpAQCAtMTU3LDYgKzE1OCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKIAor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnQz
MlRhZyA9IEpTVmFsdWU6OkludDMyVGFnOworI2Vsc2UKKyAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIEludDMyVGFnID0gSlNJbW1lZGlhdGU6OlRhZ1R5cGVOdW1iZXIgPj4gMzI7CisjZW5k
aWYKICAgICAgICAgaW5saW5lIEp1bXAgZW1pdExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJl
Z2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgcGF5bG9hZCk7CiAgICAgICAgIGlubGluZSBKdW1wIGVt
aXRMb2FkSW50MzIodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgZHN0
KTsKICAgICAgICAgaW5saW5lIEp1bXAgZW1pdExvYWREb3VibGUodW5zaWduZWQgdmlydHVhbFJl
Z2lzdGVySW5kZXgsIEZQUmVnaXN0ZXJJRCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCk7CkBAIC0x
NzMsNiArMTc5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKIAogICAgICAgICBpbmxpbmUg
QWRkcmVzcyBwYXlsb2FkRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGlubGluZSBBZGRyZXNzIGludFBheWxvYWRGb3IodW5z
aWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAg
ICAgaW5saW5lIEFkZHJlc3MgaW50VGFnRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJh
c2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGlubGluZSBBZGRyZXNzIGFkZHJlc3NG
b3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsK
ICAgICB9OwogCkBAIC0yMTQsNiArMjIyLDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBy
ZXR1cm4gQWRkcmVzcyhiYXNlLCAodmlydHVhbFJlZ2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0
ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSk7CiAgICAg
fQogCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50ZXJmYWNlSklUOjpp
bnRQYXlsb2FkRm9yKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJh
c2UpCisgICAgeworICAgICAgICByZXR1cm4gcGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXJJbmRl
eCwgYmFzZSk7CisgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpT
SW50ZXJmYWNlSklUOjppbnRUYWdGb3IodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJl
Z2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0YWdGb3IodmlydHVhbFJlZ2lz
dGVySW5kZXgsIGJhc2UpOworICAgIH0KKwogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVt
cCBKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWREb3VibGUodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVy
SW5kZXgsIEZQUmVnaXN0ZXJJRCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8IEZpcnN0
Q29uc3RhbnRSZWdpc3RlckluZGV4KTsKQEAgLTI3OSw2ICsyOTcsMTcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4
KSA8IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KTsKICAgICAgICAgcmV0dXJuIGFkZHJlc3NG
b3IodmlydHVhbFJlZ2lzdGVySW5kZXgsIGJhc2UpOwogICAgIH0KKworICAgIGlubGluZSBKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6aW50UGF5bG9hZEZvcih1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHN0YXRpY19jYXN0PGludD4odmlydHVhbFJlZ2lzdGVySW5kZXgpIDwgRmlyc3RDb25z
dGFudFJlZ2lzdGVySW5kZXgpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAodmlydHVh
bFJlZ2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgIH0KKyAgICBpbmxpbmUg
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MgSlNJbnRlcmZhY2VKSVQ6OmludFRhZ0Zvcih1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHN0YXRpY19jYXN0PGludD4odmlydHVhbFJlZ2lzdGVySW5kZXgpIDwgRmlyc3RDb25z
dGFudFJlZ2lzdGVySW5kZXgpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAodmlydHVh
bFJlZ2lzdGVySW5kZXggKiBzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgfQogI2VuZGlmCiAKICAgICBp
bmxpbmUgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MgSlNJbnRlcmZhY2VKSVQ6OmFkZHJlc3NGb3Io
dW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgYmFzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgKaW5kZXggNWM1OTNk
OTlkODYwNDljMWJlNjk2NjlkYTYzZmU0YWQ5MmU5YTMwMi4uOGJkNGVjNDljOGJjMmI3MTUxOWNj
NDg0N2M5ZjRiNmQyMjE3NTI4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9TcGVjaWFsaXplZFRodW5rSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9T
cGVjaWFsaXplZFRodW5rSklULmgKQEAgLTg3LDcgKzg3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAg
bW92ZShzcmMsIHJlZ1QwKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVS
ZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcihS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3RlciksIGNhbGxGcmFtZVJl
Z2lzdGVyKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTAx
LDcgKzEwMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNz
KHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMu
dGFnKSAtIHNpemVvZihkb3VibGUpKSwgcmVnVDEpOwogICAgICAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMucGF5bG9hZCkgLSBzaXplb2YoZG91YmxlKSksIHJlZ1QwKTsKICNlbmRpZgotICAgICAgICAg
ICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkNhbGxl
ckZyYW1lICogKGludClzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAg
ICAgICAgICAgbG9hZFB0cihwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIGNh
bGxGcmFtZVJlZ2lzdGVyKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgcmV0KCk7
CiAgICAgICAgIH0KIApAQCAtMTEwLDcgKzExMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDAp
OwogICAgICAgICAgICAgdGFnUmV0dXJuQXNJbnQzMigpOwotICAgICAgICAgICAgbG9hZFB0cihB
ZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICogKGlu
dClzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9h
ZFB0cihwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIGNhbGxGcmFtZVJlZ2lz
dGVyKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0K
IApAQCAtMTE5LDcgKzExOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKHNy
YyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwogICAgICAgICAg
ICAgdGFnUmV0dXJuQXNKU0NlbGwoKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxs
RnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6ZW9mKFJl
Z2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIocGF5bG9h
ZEZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3RlciksIGNhbGxG
cmFtZVJlZ2lzdGVyKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmNwcAppbmRleCAyNWE4OTE2NDE5
NjA4ZTI2ODRhYjRjOTNiNGMwN2FkZTNiMjg2YWEyLi5hZTNjYTExZjUxYmIyYTkxZDkxOTZmNzIy
NjMxNTc0ODQ5NDlhMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcmdMaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUg
IkpTQ2VsbC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NvcGVDaGFpbi5o
IgogCiB1c2luZyBzdGQ6Om1pbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb252ZXJzaW9uLmNwcAppbmRleCA1OTdmMWU5YTE4NWIzZTdlYjE2ZGM1NDAzODRhZWQz
ZWNlMjk5ZDk5Li4xNDE4ODc2ZWQxNDkyYzFkY2U1MmFkOWQ3YTgwOTM2YTZjYThiYzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbnZlcnNpb24uaCIKIAogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NvcGVDaGFp
bi5oIgogI2luY2x1ZGUgIlVTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dDQWN0aXZpdHlDYWxsYmFj
a0NGLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dDQWN0aXZpdHlDYWxsYmFj
a0NGLmNwcAppbmRleCBhOTQxY2ZhOTQyOGRiOWUyNTc4ZWYyZWY4Yjk4ZTdjZGM1OWY3NmZjLi4y
ZTg3OGJmZTNkNmQyNDY0YWVhY2Q2NmJiMDgyNGJjMWZlYmI2OTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2tDRi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR0NBY3Rpdml0eUNhbGxiYWNrQ0YuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsRGF0
YS5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU2NvcGVDaGFpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3
dGYvV1RGVGhyZWFkRGF0YS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVu
dGlmaWVyLmNwcAppbmRleCAzOTkyNDE4NDg4OGQ4NWFmMzM3ZTFkNmQ5OGYxNmVmZjczN2UxMzM2
Li41MWRmY2JiMDViNWE2ZDlhODY3ZDBhYzc3MzgyMTA2YTYyMDgxYTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcApAQCAtMjIsNiArMjIsNyBAQAog
I2luY2x1ZGUgIklkZW50aWZpZXIuaCIKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiTnVtZXJpY1N0cmluZ3MuaCIKICNpbmNsdWRlICJT
Y29wZUNoYWluLmgiCiAjaW5jbHVkZSA8bmV3PiAvLyBmb3IgcGxhY2VtZW50IG5ldwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA1NmUyNjQ3ZDBl
OGJiNDEwY2RhNjU1NGE5Njk0MmRhYWJlYjQ2NDVkLi5mOTUwMTIzNWFmZGI3NjIwMmYxYWIwNGRj
Njg5MzgwMWYwZGI2YjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaApAQCAtOTIsNiArOTIsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihhc09iamVjdCh2YWx1ZSkpOwogICAgIH0K
IAorICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpvcGVyYXRvcj0oSlNBY3Rp
dmF0aW9uKiBhY3RpdmF0aW9uKQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKGFjdGl2
YXRpb24pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAorICAgIEFMV0FZU19J
TkxJTkUgSlNBY3RpdmF0aW9uKiBSZWdpc3Rlcjo6YWN0aXZhdGlvbigpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gYXNBY3RpdmF0aW9uKGpzVmFsdWUoKSk7CisgICAgfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTQWN0aXZhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCA2NGRjYjA4ZmZmMmYyZTVkNjI1NDZmOTZmOWQ1
OGM2MzA4MjE5Njg2Li5mYzU0M2YwZTgyZjcyZjc2OGI4Yzc1NjQ1ODg1YmNjMWYxNjNhY2UwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRl
ICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKIAogI2lmIFVTRShQVEhSRUFE
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTnVtYmVyQ2Vs
bC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU051bWJlckNlbGwuY3BwCmlu
ZGV4IDMxNzJjYzkzNTVhMWRiZGJiOTRkNzM4OTc2YjgzYmRlZDI2ODMzNGQuLjc5ZjJkMmEzM2Vk
NzZmZWRhZmNlMTIzYmYzNzU2OTNlZTNmNTI0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTnVtYmVyQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOdW1iZXJDZWxsLmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNOdW1iZXJDZWxsLmgiCisjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKICNpbmNsdWRlICJTY29wZUNoYWluLmgiCiAKIC8vIEtlZXAgb3VyIGV4cG9ydGVkIHN5
bWJvbHMgbGlzdHMgaGFwcHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAppbmRleCAyYjRkYjQzYjk0MWQ2NzY3ZWY5NjBjMzA3MWZkOWRiNjllYzRmZTk2Li5lZWYzN2Iy
MmE2ZTMzNjVkYmNiMWYzY2U4ZmRlYjMzMWY5ZmE4NDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTg0MCw2ICs4NDAsMjAgQEAgaW5saW5lIEpTVmFsdWUg
SlNWYWx1ZTo6dG9TdHJpY3RUaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBy
ZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT50b1N0cmljdFRoaXNPYmplY3QoZXhlYyk7CiB9CiAK
K0FMV0FZU19JTkxJTkUgSlNPYmplY3QqIFJlZ2lzdGVyOjpmdW5jdGlvbigpIGNvbnN0Cit7Cisg
ICAgaWYgKCFqc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBhc09iamVj
dChqc1ZhbHVlKCkpOworfQorCitBTFdBWVNfSU5MSU5FIFJlZ2lzdGVyIFJlZ2lzdGVyOjp3aXRo
Q2FsbGVlKEpTT2JqZWN0KiBjYWxsZWUpCit7CisgICAgUmVnaXN0ZXIgcjsKKyAgICByID0gSlNW
YWx1ZShjYWxsZWUpOworICAgIHJldHVybiByOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
I2VuZGlmIC8vIEpTT2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCBkNTFjYmE4ZDgzNjIxNDZiNjg4
Yzk1YWY3NTg0YTU0OGJlY2JiNTcwLi4zNGNiYTg1Nzg0MDY3ZDZhMWY1MGY3ZTRhYjc5MDI2ZWVh
MDFiZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC0xMDYsNiArMTA2LDE3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICByZXR1cm4gbV9lbnVtZXJhdGlvbkNhY2hlLmdldCgpOwogICAgIH0KIAorICAg
IEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpvcGVyYXRvcj0oSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IpCisgICAgeworICAgICAgICAqdGhpcyA9
IEpTVmFsdWUocHJvcGVydHlOYW1lSXRlcmF0b3IpOworICAgICAgICByZXR1cm4gKnRoaXM7Cisg
ICAgfQorCisgICAgQUxXQVlTX0lOTElORSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBSZWdpc3Rl
cjo6cHJvcGVydHlOYW1lSXRlcmF0b3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqPihqc1ZhbHVlKCkuYXNDZWxsKCkpOwor
ICAgIH0KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFs
dWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAppbmRleCA3Mzhl
ZGEwZjgxYTFmNDYzNDVkMjIxOTIwYTRjMzQyM2I1ZDVkYzQ2Li4wZmQ2YzRjYjQzMWY3MzcwMDAz
N2FmZWQwYzU0OTQ2NThlYWJjYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YWx1ZS5oCkBAIC01MiwxMSArNTIsMzMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBlbnVtIFBy
ZWZlcnJlZFByaW1pdGl2ZVR5cGUgeyBOb1ByZWZlcmVuY2UsIFByZWZlck51bWJlciwgUHJlZmVy
U3RyaW5nIH07CiAKKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgdHlwZWRlZiBpbnQ2NF90
IEVuY29kZWRKU1ZhbHVlOwogI2Vsc2UKICAgICB0eXBlZGVmIHZvaWQqIEVuY29kZWRKU1ZhbHVl
OwogI2VuZGlmCisgICAgCisgICAgdW5pb24gRW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CisgICAg
ICAgIEVuY29kZWRKU1ZhbHVlIGFzRW5jb2RlZEpTVmFsdWU7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgZG91YmxlIGFzRG91YmxlOworI2VsaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAg
ICAgSlNDZWxsKiBwdHI7CisjZW5kaWYKKyAgICAgICAgCisjaWYgQ1BVKEJJR19FTkRJQU4pCisg
ICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBpbnQzMl90IHRhZzsKKyAgICAgICAgICAgIGlu
dDMyX3QgcGF5bG9hZDsKKyAgICAgICAgfSBhc0JpdHM7CisjZWxzZQorICAgICAgICBzdHJ1Y3Qg
eworICAgICAgICAgICAgaW50MzJfdCBwYXlsb2FkOworICAgICAgICAgICAgaW50MzJfdCB0YWc7
CisgICAgICAgIH0gYXNCaXRzOworI2VuZGlmCisgICAgfTsKIAogICAgIGRvdWJsZSBub25Jbmxp
bmVOYU4oKTsKIApAQCAtMjM5LDI4ICsyNjEsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IGVudW0geyBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY4IH07CiAgICAgICAgIAogICAgICAg
ICBlbnVtIHsgTG93ZXN0VGFnID0gIERlbGV0ZWRWYWx1ZVRhZyB9OwotICAgICAgICAKKwogICAg
ICAgICB1aW50MzJfdCB0YWcoKSBjb25zdDsKICAgICAgICAgaW50MzJfdCBwYXlsb2FkKCkgY29u
c3Q7CiAKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgRW5jb2RlZEpTVmFsdWUgYXNFbmNv
ZGVkSlNWYWx1ZTsKLSAgICAgICAgICAgIGRvdWJsZSBhc0RvdWJsZTsKLSNpZiBDUFUoQklHX0VO
RElBTikKLSAgICAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgaW50MzJfdCB0YWc7
Ci0gICAgICAgICAgICAgICAgaW50MzJfdCBwYXlsb2FkOwotICAgICAgICAgICAgfSBhc0JpdHM7
Ci0jZWxzZQotICAgICAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgICAgICBpbnQzMl90IHBh
eWxvYWQ7Ci0gICAgICAgICAgICAgICAgaW50MzJfdCB0YWc7Ci0gICAgICAgICAgICB9IGFzQml0
czsKLSNlbmRpZgotICAgICAgICB9IHU7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICBFbmNvZGVkVmFsdWVEZXNjcmlwdG9yIHU7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICBKU0NlbGwqIG1fcHRyOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCisjZW5kaWYK
ICAgICB9OwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTWm9tYmllLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTWm9tYmllLmNwcAppbmRleCA4NmRjYzcyNmIyNTcwN2FjZTlmYTBkZTYwMTI3OWJm
YzliNGQ4OTk0Li4yM2NmMTM1ZjkwODM1YTM3YjY3MTBlNWZjMDM2YjFjYzljNGQ4NGE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJpZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNab21iaWUuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNab21iaWUuaCIKICNpbmNsdWRl
ICJDbGFzc0luZm8uaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hh
aW4uaCIKIAogI2lmIEVOQUJMRShKU0NfWk9NQklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZEJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcmtlZEJsb2NrLmNwcAppbmRleCBiOTg2NWZhMTM0MDhkZDk0MWFhNmM2YzFh
ZDY0M2MwMmJlMzg0MTdlLi5jYWU3MDFmYTJjYjFiY2ZlMDdmZmI0MDk1N2U0ODRmYzQxZTdjNmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkQmxvY2suY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTWFya2VkQmxvY2suaCIKIAogI2luY2x1ZGUgIkpT
Q2VsbC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNab21iaWUuaCIKICNp
bmNsdWRlICJTY29wZUNoYWluLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcmtlZFNwYWNlLmNwcAppbmRleCBmZGI2NGI5YTYwMmE5ZTQ0MzRiZDliYjFlZTBkMWU0YTRk
MzU4ZWQ4Li5kOWExZTQyMWJhYjk5M2U5NmJiOGRkODA4NjhlY2Q5MmQ4NTZlOTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAj
aW5jbHVkZSAiSlNMb2NrLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJTY29w
ZUNoYWluLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3BwCmluZGV4IDM1MWVjYzNlZjljNDNjMmY5
YjFkMjQ0ZDYzMGY2NGY4NmM5NDE1NzkuLjhlZmI0MDY1ZTE3MzljZjA1ZDVkOTE2NmM3NWJlY2Q4
MGRkZTMwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU5hbWVBcnJheS5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCisjaW5jbHVkZSAiSlNPYmplY3QuaCIK
ICNpbmNsdWRlICJTY29wZUNoYWluLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVk
ZSAiU3RydWN0dXJlQ2hhaW4uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3Bl
Q2hhaW4uaAppbmRleCBmYmVjZDExN2UwZTdjYWNkMzc3OWM2OGQzNzU3NTU4ODFlM2E4MTEyLi4w
ODIyZjU0ZWEwNDYyZWM3NjZiZjBmYjFkMjA1MzRkZmU2MjNkNDU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCkBAIC0xMjgsNiArMTI4LDE3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHsKICAgICAgICAgcmV0dXJuIHNjb3BlQ2hhaW4oKS0+Z2xvYmFsVGhp
cy5nZXQoKTsKICAgICB9CisgICAgCisgICAgQUxXQVlTX0lOTElORSBTY29wZUNoYWluTm9kZSog
UmVnaXN0ZXI6OnNjb3BlQ2hhaW4oKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNjb3BlQ2hhaW5Ob2RlKj4oanNWYWx1ZSgpLmFzQ2VsbCgpKTsKKyAgICB9CisgICAg
CisgICAgQUxXQVlTX0lOTElORSBSZWdpc3RlciYgUmVnaXN0ZXI6Om9wZXJhdG9yPShTY29wZUNo
YWluTm9kZSogc2NvcGVDaGFpbikKKyAgICB7CisgICAgICAgICp0aGlzID0gSlNWYWx1ZShzY29w
ZUNoYWluKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGF0ZU1hdGguY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAKaW5kZXggNGVhZjRlMTU3
ODkwNDJiYTNkOTM3ZmMwOTM3OGRiZDEzOWJmYzMxYy4uNzBjMGNmNDdmNWY3OWNiZmMzMzFmN2Ex
N2ZhOTdlOWE3Y2JjNjdkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9E
YXRlTWF0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAK
QEAgLTc1LDYgKzc1LDkgQEAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAjaW5jbHVkZSAiQVND
SUlDVHlwZS5oIgogI2luY2x1ZGUgIkN1cnJlbnRUaW1lLmgiCisjaWYgVVNFKEpTQykKKyNpbmNs
dWRlICJKU09iamVjdC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgogI2lmIFVT
RShKU0MpCiAjaW5jbHVkZSAiU2NvcGVDaGFpbi5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85551</attachid>
            <date>2011-03-11 16:09:20 -0800</date>
            <delta_ts>2011-03-11 19:12:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56214-20110311160919.patch</filename>
            <type>text/plain</type>
            <size>43070</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
YTBhNmQ3ZTY1OWI2ZTg5YzZhYTZjOTVlNmQ2OTg3ZGYyNTJmMzcuLmJkZTRlNmI3NWY3ZjIxZmQ2
MjlmYTUwOWYzOWFjMzQyMzBmODBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDExLTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFs
bCB2YWx1ZXMgYXJlIGNvcnJlY3RseSB0YWdnZWQgaW4gdGhlIHJlZ2lzdGVyZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTQKKworICAgICAg
ICBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgdGhhdCBhbGwgSlNDZWxsIHBvaW50ZXJzIHdyaXR0ZW4g
dG8KKyAgICAgICAgdGhlIHJlZ2lzdGVyZmlsZSBhcmUgY29ycmVjdGx5IHRhZ2dlZCBhcyBKU0Nl
bGxzLCBhbmQgcmVwbGFjZXMKKyAgICAgICAgcmF3IGludCB1c2FnZSB3aXRoIHRoZSBpbW1lZGlh
dGUgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgRm9yIHBlcmZvcm1hbmNlLCByZWdpc3RlciBw
cmVzc3VyZSwgYW5kIGdlbmVyYWwgc2FuZW5lc3MgcmVhc29ucworICAgICAgICBJJ3ZlIGFkZGVk
IGFic3RyYWN0aW9ucyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgdGFnCisgICAgICAgIGFu
ZCBwYXlsb2FkIG9mIGludGVnZXIgcmVnaXN0ZXJzIGRpcmVjdGx5IGZvciB0aGUgSlNWQUxVRTY0
CisgICAgICAgIGVuY29kaW5nLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OndpdGhJbnQpOgorICAgICAgICAoSlNDOjpSZWdpc3Rl
cjo6d2l0aENhbGxlZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoSlNDOjpSZWdpc3Rlcjo6aSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphY3RpdmF0
aW9uKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
UmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6
OnNjb3BlQ2hhaW4pOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2Fs
bC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbEluaXRpYWxpemVDYWxsRnJh
bWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxWYXJhcmdzKToKKyAgICAgICAg
KEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSk6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxT
bG93Q2FzZSk6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRJ
bnRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X25leHRfcG5hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9hZF92YXJhcmdzKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb2FkX3ZhcmFyZ3MpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVz
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25leHRfcG5hbWUpOgorICAgICAgICAqIGpp
dC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6aW50UGF5
bG9hZEZvcik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IpOgorICAg
ICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6CisgICAgICAgIChKU0M6OlNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJldHVybkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRo
dW5rSklUOjpyZXR1cm5Eb3VibGUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklU
OjpyZXR1cm5JbnQzMik6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVy
bkpTQ2VsbCk6CisKIDIwMTEtMDMtMTEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzN2QxYzU3MDQ5YzI0NjJlYjk3MzQ4NjYxNDhmMTllZDRiZGIz
ZmJlLi45ZjhkNDlhNjk4NWNmZDlhMzVlM2Y1MTIyNTRjMzU3NmM1MzFiYzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0NCw2ICsyNTQ0LDcgQEAKIAkJCX07CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2YVNjcmlwdENvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKKwkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA1ZWMyYTNmOThhNDU4ZDE2YTJmMjlh
Njk3ZmQ0YjZjZTQzZDA0NWQ4Li41ZGY0ODQxNGFhYzdiODZkMWQ3OGUzOTEyZDcyZjc5NjIyNzc5
Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNp
bmNsdWRlICJTY29wZUNoYWluLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAppbmRleCAzOTQ0NjQyNjgwNjM2OTQ1ODQ5
MTBhZTI3Y2I2NmNiMDgxZDRkYWZjLi41N2QyMDdjYzg3OGM2NzE5NDllM2UwNDdkY2YxNjNkNDlm
MWViYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIu
aApAQCAtNTQsMTEgKzU0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVyKGNv
bnN0IEpTVmFsdWUmKTsKICAgICAgICAgUmVnaXN0ZXImIG9wZXJhdG9yPShjb25zdCBKU1ZhbHVl
Jik7CiAgICAgICAgIEpTVmFsdWUganNWYWx1ZSgpIGNvbnN0OwotICAgICAgICAKLSAgICAgICAg
UmVnaXN0ZXImIG9wZXJhdG9yPShKU0FjdGl2YXRpb24qKTsKKwogICAgICAgICBSZWdpc3RlciYg
b3BlcmF0b3I9KENhbGxGcmFtZSopOwogICAgICAgICBSZWdpc3RlciYgb3BlcmF0b3I9KENvZGVC
bG9jayopOwotICAgICAgICBSZWdpc3RlciYgb3BlcmF0b3I9KEpTUHJvcGVydHlOYW1lSXRlcmF0
b3IqKTsKICAgICAgICAgUmVnaXN0ZXImIG9wZXJhdG9yPShTY29wZUNoYWluTm9kZSopOwogICAg
ICAgICBSZWdpc3RlciYgb3BlcmF0b3I9KEluc3RydWN0aW9uKik7CiAKQEAgLTczLDI5ICs3MSwx
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUmVnaXN0ZXIgd2l0aEludChp
bnQzMl90IGkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFJlZ2lzdGVyIHI7Ci0gICAgICAgICAg
ICByLnUuaSA9IGk7CisgICAgICAgICAgICBSZWdpc3RlciByID0ganNOdW1iZXIoaSk7CiAgICAg
ICAgICAgICByZXR1cm4gcjsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBSZWdpc3RlciB3
aXRoQ2FsbGVlKEpTT2JqZWN0KiBjYWxsZWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJlZ2lz
dGVyIHI7Ci0gICAgICAgICAgICByLnUuZnVuY3Rpb24gPSBjYWxsZWU7Ci0gICAgICAgICAgICBy
ZXR1cm4gcjsKLSAgICAgICAgfQorICAgICAgICBzdGF0aWMgaW5saW5lIFJlZ2lzdGVyIHdpdGhD
YWxsZWUoSlNPYmplY3QqIGNhbGxlZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB1bmlvbiB7
Ci0gICAgICAgICAgICBpbnQzMl90IGk7CiAgICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSB2YWx1
ZTsKLQotICAgICAgICAgICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uOwogICAgICAgICAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsK
LSAgICAgICAgICAgIEpTT2JqZWN0KiBmdW5jdGlvbjsKLSAgICAgICAgICAgIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgICAgICAgICAgU2NvcGVDaGFp
bk5vZGUqIHNjb3BlQ2hhaW47CiAgICAgICAgICAgICBJbnN0cnVjdGlvbiogdlBDOwogICAgICAg
ICB9IHU7CiAgICAgfTsKQEAgLTEzMSwxMiArMTE3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAvLyBJbnRlcnByZXRlciBmdW5jdGlvbnMKIAotICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXIm
IFJlZ2lzdGVyOjpvcGVyYXRvcj0oSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uKQotICAgIHsKLSAg
ICAgICAgdS5hY3RpdmF0aW9uID0gYWN0aXZhdGlvbjsKLSAgICAgICAgcmV0dXJuICp0aGlzOwot
ICAgIH0KLQogICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXImIFJlZ2lzdGVyOjpvcGVyYXRvcj0o
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgewogICAgICAgICB1LmNhbGxGcmFtZSA9IGNhbGxG
cmFtZTsKQEAgLTE1NSwyOCArMTM1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1
cm4gKnRoaXM7CiAgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBSZWdpc3RlciYgUmVnaXN0ZXI6
Om9wZXJhdG9yPShTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikKLSAgICB7Ci0gICAgICAgIHUu
c2NvcGVDaGFpbiA9IHNjb3BlQ2hhaW47Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0K
LSAgICBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVyJiBSZWdpc3Rlcjo6b3BlcmF0b3I9KEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yKQotICAgIHsKLSAgICAgICAgdS5w
cm9wZXJ0eU5hbWVJdGVyYXRvciA9IHByb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgICAgICByZXR1
cm4gKnRoaXM7Ci0gICAgfQotCiAgICAgQUxXQVlTX0lOTElORSBpbnQzMl90IFJlZ2lzdGVyOjpp
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB1Lmk7CisgICAgICAgIHJldHVybiBqc1Zh
bHVlKCkuYXNJbnQzMigpOwogICAgIH0KLSAgICAKLSAgICBBTFdBWVNfSU5MSU5FIEpTQWN0aXZh
dGlvbiogUmVnaXN0ZXI6OmFjdGl2YXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IHUuYWN0aXZhdGlvbjsKLSAgICB9Ci0gICAgCisKICAgICBBTFdBWVNfSU5MSU5FIENhbGxGcmFt
ZSogUmVnaXN0ZXI6OmNhbGxGcmFtZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdS5j
YWxsRnJhbWU7CkBAIC0xODYsMjIgKzE0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAg
ICAgICAgcmV0dXJuIHUuY29kZUJsb2NrOwogICAgIH0KLSAgICAKLSAgICBBTFdBWVNfSU5MSU5F
IEpTT2JqZWN0KiBSZWdpc3Rlcjo6ZnVuY3Rpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIHUuZnVuY3Rpb247Ci0gICAgfQotICAgIAotICAgIEFMV0FZU19JTkxJTkUgSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvciogUmVnaXN0ZXI6OnByb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB1LnByb3BlcnR5TmFtZUl0ZXJhdG9yOwotICAgIH0KLSAgICAK
LSAgICBBTFdBWVNfSU5MSU5FIFNjb3BlQ2hhaW5Ob2RlKiBSZWdpc3Rlcjo6c2NvcGVDaGFpbigp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gdS5zY29wZUNoYWluOwotICAgIH0KLSAgICAK
KwogICAgIEFMV0FZU19JTkxJTkUgSW5zdHJ1Y3Rpb24qIFJlZ2lzdGVyOjp2UEMoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIHUudlBDOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXgg
YmUwNjVkMDcyMzQ0NGRiOWE1ZmVmNjRhMTI5N2RlMzkyYmYwNzM5Yy4uYWU2MGNjYjJkMGFmNGEw
ZTNiZTQ2NGYxNWMwOTNlYTc5MjllMmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC04
NTMsNiArODUzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdEluaXRSZWdp
c3Rlcih1bnNpZ25lZCBkc3QpOwogCiAgICAgICAgIHZvaWQgZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKFJlZ2lzdGVySUQgZnJvbSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBl
bnRyeSk7CisgICAgICAgIHZvaWQgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3Rl
cklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkpOworICAgICAgICB2
b2lkIGVtaXRQdXRJbnRUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkpOwogICAgICAgICB2b2lkIGVtaXRQdXRJbW1lZGlh
dGVUb0NhbGxGcmFtZUhlYWRlcih2b2lkKiB2YWx1ZSwgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVI
ZWFkZXJFbnRyeSBlbnRyeSk7CiAgICAgICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSwgUmVnaXN0ZXJJ
RCB0bywgUmVnaXN0ZXJJRCBmcm9tID0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICB2b2lk
IGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyMzIoUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFk
ZXJFbnRyeSBlbnRyeSwgUmVnaXN0ZXJJRCB0bywgUmVnaXN0ZXJJRCBmcm9tID0gY2FsbEZyYW1l
UmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggNTI0ZTU3
NmI3ZjY5OWMwMjk1YzZiMWE1YmI2NjgwOGM4MTlhZGI0Yy4uOWVjNGNiY2I3NmIxYjNiZmZlNDc4
NGM3YjNjMDIyMzAwMWMyZTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3Bw
CkBAIC00OCwxMCArNDgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgSklUOjpjb21waWxl
T3BDYWxsSW5pdGlhbGl6ZUNhbGxGcmFtZSgpCiB7Ci0gICAgc3RvcmUzMihyZWdUMSwgQWRkcmVz
cyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50ICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwotICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdU
MCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMyk7IC8v
IG5ld1Njb3BlQ2hhaW4KLSAgICBzdG9yZVB0cihyZWdUMCwgQWRkcmVzcyhjYWxsRnJhbWVSZWdp
c3RlciwgUmVnaXN0ZXJGaWxlOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdp
c3RlcikpKSk7Ci0gICAgc3RvcmVQdHIocmVnVDMsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIs
IFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lz
dGVyKSkpKTsKKyAgICAvLyByZWdUMCBob2xkcyBjYWxsZWUsIHJlZ1QxIGhvbGRzIGFyZ0NvdW50
CisgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwg
bV9zY29wZUNoYWluKSksIHJlZ1QzKTsgLy8gc2NvcGVDaGFpbgorICAgIGVtaXRQdXRJbnRUb0Nh
bGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KTsKKyAgICBl
bWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QwLCBSZWdpc3RlckZpbGU6OkNhbGxlZSk7
CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2FsbF9wdXRfcmVzdWx0KEluc3Ry
dWN0aW9uKiBpbnN0cnVjdGlvbikKQEAgLTY3LDYgKzY4LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVP
cENhbGxWYXJhcmdzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICBpbnQgcmVnaXN0ZXJP
ZmZzZXQgPSBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGFyZ0NvdW50UmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICBlbWl0RmFzdEFyaXRoSW1tVG9J
bnQocmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlLCByZWdUMCk7CiAg
ICAgYWRkUHRyKEltbTMyKHJlZ2lzdGVyT2Zmc2V0KSwgcmVnVDEsIHJlZ1QyKTsKIApAQCAtMTk5
LDggKzIwMSw5IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJ
bnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhCiAgICAgLy8gTm90ZSB0aGF0IHRo
aXMgb21pdHMgdG8gc2V0IHVwIFJlZ2lzdGVyRmlsZTo6Q29kZUJsb2NrLCB3aGljaCBpcyBzZXQg
aW4gdGhlIGNhbGxlZQogCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VU
T0YoSlNGdW5jdGlvbiwgbV9zY29wZUNoYWluKSksIHJlZ1QxKTsgLy8gbmV3U2NvcGVDaGFpbgot
Ci0gICAgc3RvcmUzMihJbW0zMihhcmdDb3VudCksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIs
IChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCkgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgCisgICAgc3RvcmUzMihJbW0zMihJ
bnQzMlRhZyksIGludFRhZ0ZvcihyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCkpOworICAgIHN0b3JlMzIoSW1tMzIoYXJnQ291bnQpLCBpbnRQYXlsb2FkRm9yKHJl
Z2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSk7CiAgICAgc3RvcmVQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rl
ck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUpICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSkpOwogICAgIHN0b3JlUHRyKHJlZ1QwLCBBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAgICAgc3RvcmVQdHIocmVnVDEsIEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIChyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6
U2NvcGVDaGFpbikgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggYWMyMzFhOWE1MmFl
MGVmZDM2NTdhNWVkM2VlNWFmMDUzYTE0ZDc4YS4uNTFiMDdlZThkZmZkNTIyYWNhYzg3OTAzY2Nk
OTI0MzA0YzcwNjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0
LmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIG5hbWVzcGFjZSBKU0Mgewogdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGxJbml0aWFsaXplQ2FsbEZyYW1lKCkKIHsKICAgICAvLyByZWdUMCBob2xkcyBjYWxs
ZWUsIHJlZ1QxIGhvbGRzIGFyZ0NvdW50Ci0gICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhjYWxs
RnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JK
RUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMyk7IC8vIHNjb3Bl
Q2hhaW4KLSAgICBzdG9yZVB0cihyZWdUMCwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgUmVn
aXN0ZXJGaWxlOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7
IC8vIGNhbGxlZQotICAgIHN0b3JlUHRyKHJlZ1QzLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVy
LCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4gKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdp
c3RlcikpKSk7IC8vIHNjb3BlQ2hhaW4KKyAgICBlbWl0UHV0SW50VG9DYWxsRnJhbWVIZWFkZXIo
cmVnVDEsIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCk7CisgICAgZW1pdFB1dENlbGxUb0Nh
bGxGcmFtZUhlYWRlcihyZWdUMCwgUmVnaXN0ZXJGaWxlOjpDYWxsZWUpOworICAgIGVtaXRQdXRD
ZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiB9
CiAKIHZvaWQgSklUOjplbWl0X29wX2NhbGxfcHV0X3Jlc3VsdChJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24pCkBAIC03Nyw3ICs3Nyw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsVmFyYXJncyhJ
bnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgLy8gU3BlY3VsYXRpdmVseSByb2xsIHRoZSBj
YWxsZnJhbWUsIGFzc3VtaW5nIGFyZ0NvdW50IHdpbGwgbWF0Y2ggdGhlIGFyaXR5LgogICAgIG11
bDMyKEltbTMyKHNpemVvZihSZWdpc3RlcikpLCByZWdUMywgcmVnVDMpOwogICAgIGFkZFB0cihj
YWxsRnJhbWVSZWdpc3RlciwgcmVnVDMpOwotICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVy
LCBBZGRyZXNzKHJlZ1QzLCBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIHRhZ0ZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMykpOworICAgIHN0
b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2FsbGVy
RnJhbWUsIHJlZ1QzKSk7CiAgICAgbW92ZShyZWdUMywgY2FsbEZyYW1lUmVnaXN0ZXIpOwogCiAg
ICAgbW92ZShyZWdUMiwgcmVnVDEpOyAvLyBhcmdDb3VudApAQCAtMjA4LDcgKzIwOSw4IEBAIHZv
aWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5z
dHJ1Y3Rpb24sIHVuc2lnbmVkKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMCksIEltbVB0cihtX2dsb2JhbERhdGEtPmpzRnVuY3Rpb25WUHRyKSkpOwog
CiAgICAgLy8gU3BlY3VsYXRpdmVseSByb2xsIHRoZSBjYWxsZnJhbWUsIGFzc3VtaW5nIGFyZ0Nv
dW50IHdpbGwgbWF0Y2ggdGhlIGFyaXR5LgotICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVy
LCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCAoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAr
IHJlZ2lzdGVyT2Zmc2V0KSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsK
KyAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IoUmVnaXN0ZXJGaWxl
OjpDYWxsZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0LCBjYWxsRnJhbWVSZWdpc3RlcikpOworICAg
IHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBwYXlsb2FkRm9yKFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKICAgICBhZGRQ
dHIoSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rl
cikpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIG1vdmUoSW1tMzIoYXJnQ291bnQpLCByZWdU
MSk7CiAKQEAgLTI4MCwxMCArMjgyLDEyIEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29k
ZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhCiAgICAg
Ly8gTm90ZSB0aGF0IHRoaXMgb21pdHMgdG8gc2V0IHVwIFJlZ2lzdGVyRmlsZTo6Q29kZUJsb2Nr
LCB3aGljaCBpcyBzZXQgaW4gdGhlIGNhbGxlZQogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwg
T0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZWdUMik7CiAKLSAg
ICBzdG9yZTMyKEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJl
Z2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3Rl
ciwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpDYWxsZXJGcmFtZSkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7
CisgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHRhZ0ZvcihyZWdpc3Rlck9m
ZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCkpOworICAgIHN0b3JlMzIoSW1tMzIo
YXJnQ291bnQpLCBwYXlsb2FkRm9yKHJlZ2lzdGVyT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1
bWVudENvdW50KSk7CisgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHBheWxvYWRGb3Io
UmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0LCBjYWxsRnJhbWVSZWdp
c3RlcikpOwogICAgIGVtaXRTdG9yZShyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVlLCByZWdUMSwgcmVnVDApOwotICAgIHN0b3JlUHRyKHJlZ1QyLCBBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCAocmVnaXN0ZXJPZmZzZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pICog
c3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIHN0b3JlMzIoSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0ZvcihyZWdpc3Rlck9mZnNldCArIFJlZ2lzdGVyRmlsZTo6
U2NvcGVDaGFpbikpOworICAgIHN0b3JlMzIocmVnVDIsIHBheWxvYWRGb3IocmVnaXN0ZXJPZmZz
ZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKTsKICAgICBhZGRQdHIoSW1tMzIocmVnaXN0
ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogCiAgICAg
Ly8gQ2FsbCB0byB0aGUgY2FsbGVlCkBAIC0zMDksNyArMzEzLDggQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGxTbG93Q2FzZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2Fz
ZUVudHJ5PjoKICAgICBKdW1wIGNhbGxMaW5rRmFpbE5vdEpTRnVuY3Rpb24gPSBicmFuY2hQdHIo
Tm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIobV9nbG9iYWxEYXRhLT5qc0Z1bmN0aW9u
VlB0cikpOwogCiAgICAgLy8gU3BlY3VsYXRpdmVseSByb2xsIHRoZSBjYWxsZnJhbWUsIGFzc3Vt
aW5nIGFyZ0NvdW50IHdpbGwgbWF0Y2ggdGhlIGFyaXR5LgotICAgIHN0b3JlUHRyKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCAoUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0KSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lz
dGVyKSkpKTsKKyAgICBzdG9yZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IoUmVn
aXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSArIHJlZ2lzdGVyT2Zmc2V0LCBjYWxsRnJhbWVSZWdpc3Rl
cikpOworICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBwYXlsb2FkRm9yKFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUgKyByZWdpc3Rlck9mZnNldCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsK
ICAgICBhZGRQdHIoSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihSZWdpc3RlcikpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIG1vdmUoSW1tMzIoYXJnQ291
bnQpLCByZWdUMSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lTWV0aG9kcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRo
b2RzLmgKaW5kZXggMjBjZmU0YzBlMWZiMGI2OGY1MGE5YmY2NWQzZjQ2ZGExYjYzMDc5OC4uNzEz
NzQ2MGZjMzY3N2UxYWQ2YTc1NGU4MmE3YmYyOTMyNzZkMmNmZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKQEAgLTUyLDcgKzUyLDIxIEBAIEFMV0FZ
U19JTkxJTkUgSlNWYWx1ZSBKSVQ6OmdldENvbnN0YW50T3BlcmFuZCh1bnNpZ25lZCBzcmMpCiAK
IEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3Rl
cklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCiB7Ci0g
ICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgZW50cnkgKiBzaXpl
b2YoUmVnaXN0ZXIpKSk7CisgICAgc3RvcmVQdHIoZnJvbSwgcGF5bG9hZEZvcihlbnRyeSwgY2Fs
bEZyYW1lUmVnaXN0ZXIpKTsKK30KKworQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdFB1dENl
bGxUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZy
YW1lSGVhZGVyRW50cnkgZW50cnkpCit7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBzdG9y
ZTMyKEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCB0YWdGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lz
dGVyKSk7CisjZW5kaWYKKyAgICBzdG9yZVB0cihmcm9tLCBwYXlsb2FkRm9yKGVudHJ5LCBjYWxs
RnJhbWVSZWdpc3RlcikpOworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0UHV0SW50
VG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tLCBSZWdpc3RlckZpbGU6OkNhbGxGcmFt
ZUhlYWRlckVudHJ5IGVudHJ5KQoreworICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRU
YWdGb3IoZW50cnksIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CisgICAgc3RvcmUzMihmcm9tLCBpbnRQ
YXlsb2FkRm9yKGVudHJ5LCBjYWxsRnJhbWVSZWdpc3RlcikpOwogfQogCiBBTFdBWVNfSU5MSU5F
IHZvaWQgSklUOjplbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIodm9pZCogdmFsdWUs
IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBmN2VmYjU5YmM1YzUzZjU1MDgyNWQxNjli
OGI3OGFiMzFiYWE5ZDU4Li4zZWI3MWFjY2M4ZTljODdmY2FkYzYwZTAxYzgzMjZmOTcxNGRlYWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE5OSw3ICsx
OTksNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFs
IGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpD
YWxsZXJGcmFtZSwgcmVnVDApOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJl
Z2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QwKTsKLSAgICBlbWl0UHV0VG9DYWxs
RnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1
dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsK
IAogICAgIHBlZWsocmVnVDEpOwogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwg
UmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0yMjIsNyArMjIyLDcgQEAgSklUOjpMYWJlbCBK
SVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEs
IGJvb2wgaXNDb24KICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QyKTsK
ICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hh
aW4sIHJlZ1QxLCByZWdUMik7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBS
ZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFk
ZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAKICAgICBwcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCiAgICAgZW1pdFB1
dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTI0
Myw3ICsyNDMsNyBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxs
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgYm9vbCBpc0NvbgogICAgIC8vIGdldCB0byBpdHMg
Z2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJG
aWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QwKTsKLSAgICBlbWl0UHV0
VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAg
ZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNo
YWluKTsKIAogICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENh
bGxlZSBwcmVzZXJ2ZWQKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lz
dGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtOTAyLDggKzkwMiw5IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9wbmFtZXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBnZXRQbmFt
ZXNTdHViQ2FsbC5hZGRBcmd1bWVudChyZWdUMCk7CiAgICAgZ2V0UG5hbWVzU3R1YkNhbGwuY2Fs
bChkc3QpOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciwgbV9qc1N0cmluZ3NTaXplKSksIHJlZ1QzKTsKLSAgICBzdG9yZTMy
KEltbTMyKDApLCBhZGRyZXNzRm9yKGkpKTsKLSAgICBzdG9yZTMyKHJlZ1QzLCBhZGRyZXNzRm9y
KHNpemUpKTsKKyAgICBzdG9yZVB0cih0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBheWxvYWRGb3Io
aSkpOworICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3Ioc2l6ZSkpOworICAg
IHN0b3JlMzIocmVnVDMsIGludFBheWxvYWRGb3Ioc2l6ZSkpOwogICAgIEp1bXAgZW5kID0ganVt
cCgpOwogCiAgICAgaXNOb3RPYmplY3QubGluayh0aGlzKTsKQEAgLTkzMSw4ICs5MzIsOCBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9uZXh0X3BuYW1lKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgSnVtcExpc3QgY2FsbEhhc1Byb3BlcnR5OwogCiAgICAgTGFiZWwgYmVnaW4odGhp
cyk7Ci0gICAgbG9hZDMyKGFkZHJlc3NGb3IoaSksIHJlZ1QwKTsKLSAgICBKdW1wIGVuZCA9IGJy
YW5jaDMyKEVxdWFsLCByZWdUMCwgYWRkcmVzc0ZvcihzaXplKSk7CisgICAgbG9hZDMyKGludFBh
eWxvYWRGb3IoaSksIHJlZ1QwKTsKKyAgICBKdW1wIGVuZCA9IGJyYW5jaDMyKEVxdWFsLCByZWdU
MCwgaW50UGF5bG9hZEZvcihzaXplKSk7CiAKICAgICAvLyBHcmFiIGtleSBAIGkKICAgICBsb2Fk
UHRyKGFkZHJlc3NGb3IoaXQpLCByZWdUMSk7CkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbmV4dF9wbmFtZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAg
ICAgLy8gSW5jcmVtZW50IGkKICAgICBhZGQzMihJbW0zMigxKSwgcmVnVDApOwotICAgIHN0b3Jl
MzIocmVnVDAsIGFkZHJlc3NGb3IoaSkpOworICAgIHN0b3JlMzIocmVnVDAsIGludFBheWxvYWRG
b3IoaSkpOwogCiAgICAgLy8gVmVyaWZ5IHRoYXQgaSBpcyB2YWxpZDoKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGJhc2UsIHJlZ1QwKTsKQEAgLTE2ODksNyArMTY5MCw4IEBAIHZvaWQgSklU
OjplbWl0X29wX2xvYWRfdmFyYXJncyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
I2VuZGlmCiAgICAgLy8gTG9hZCBhcmcgY291bnQgaW50byByZWdUMAogICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyMzIoUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50LCByZWdUMCk7Ci0g
ICAgc3RvcmVQdHIocmVnVDAsIGFkZHJlc3NGb3IoYXJnQ291bnREc3QpKTsKKyAgICBzdG9yZTMy
KEltbTMyKEludDMyVGFnKSwgaW50VGFnRm9yKGFyZ0NvdW50RHN0KSk7CisgICAgc3RvcmUzMihy
ZWdUMCwgaW50UGF5bG9hZEZvcihhcmdDb3VudERzdCkpOwogICAgIEp1bXAgZW5kQnJhbmNoID0g
YnJhbmNoMzIoRXF1YWwsIHJlZ1QwLCBJbW0zMigxKSk7CiAKICAgICBtdWwzMihJbW0zMihzaXpl
b2YoUmVnaXN0ZXIpKSwgcmVnVDAsIHJlZ1QzKTsKQEAgLTE3MjcsOCArMTcyOSw5IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9sb2FkX3ZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29w
X2xvYWRfdmFyYXJncyk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoYXJnc09mZnNl
dCkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKLSAgICAvLyBTdG9yZXMgYSBuYWtlZCBpbnQzMiBp
biB0aGUgcmVnaXN0ZXIgZmlsZS4KLSAgICBzdG9yZTMyKHJldHVyblZhbHVlUmVnaXN0ZXIsIEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ0NvdW50RHN0ICogc2l6ZW9mKFJlZ2lzdGVyKSkp
OworICAgIAorICAgIHN0b3JlMzIoSW1tMzIoSW50MzJUYWcpLCBpbnRUYWdGb3IoYXJnQ291bnRE
c3QpKTsKKyAgICBzdG9yZTMyKHJldHVyblZhbHVlUmVnaXN0ZXIsIGludFBheWxvYWRGb3IoYXJn
Q291bnREc3QpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfbmV3X2Z1bmMoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAppbmRleCA3ZDM2OTdlMjIzZDQ1MThlYjI2Zjk2MWZhMjJhNDlmYmVlMjNj
NjczLi5hMzIyN2U1NmI1YTZmYjAzYWY5NzMwOTZjN2M4ZTkzNTRlNjY4OTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0yMDUsNyArMjA1
LDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICAvLyBnZXQgdG8gaXRzIGdsb2JhbCBk
YXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2Fs
bGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVtaXRQdXRD
ZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CiAK
ICAgICBwZWVrKHJlZ1QxKTsKICAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJl
Z2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIEpJVDo6TGFiZWwgSklU
Ojpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBi
b29sIGlzQ29uCiAgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBlbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCByZWdUMik7CiAg
ICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWlu
LCByZWdUMSwgcmVnVDIpOwotICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVn
aXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKyAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVy
KHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogCiAgICAgcHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAogICAgIGVtaXRQdXRU
b0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBAIC0yNTEs
NyArMjUxLDcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaXNDb24KICAgICAvLyBnZXQgdG8gaXRzIGds
b2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmls
ZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdFB1dFRv
Q2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOworICAgIGVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFp
bik7CiAKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxs
ZWUgcHJlc2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBSZWdpc3Rl
ckZpbGU6OlJldHVyblBDKTsKQEAgLTMyMSw3ICszMjEsNyBAQCBKSVQ6OkNvZGVQdHIgSklUOjpw
cml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoUGFzc1JlZlB0cjxFeGVjdXRhYmxlUG9vbD4gZXhl
Y3V0YQogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwogICAgIGVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVn
VDEsIHJlZ1QwKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVy
RmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdU
MSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAogICAgIHBlZWsocmVnVDEpOwogICAgIGVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyk7CkBA
IC0zNDQsNyArMzQ0LDcgQEAgSklUOjpDb2RlUHRyIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRp
dmVDYWxsKFBhc3NSZWZQdHI8RXhlY3V0YWJsZVBvb2w+IGV4ZWN1dGEKICAgICAvLyBnZXQgdG8g
aXRzIGdsb2JhbCBkYXRhLgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lz
dGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QyKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMik7Ci0gICAgZW1p
dFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwor
ICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmlsZTo6U2Nv
cGVDaGFpbik7CiAKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAv
LyBDYWxsZWUgcHJlc2VydmVkCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzLCBS
ZWdpc3RlckZpbGU6OlJldHVyblBDKTsKQEAgLTM2Nyw3ICszNjcsNyBAQCBKSVQ6OkNvZGVQdHIg
SklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoUGFzc1JlZlB0cjxFeGVjdXRhYmxlUG9v
bD4gZXhlY3V0YQogICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOwog
ICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFp
biwgcmVnVDEsIHJlZ1QwKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJl
Z2lzdGVyRmlsZTo6U2NvcGVDaGFpbik7CisgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRl
cihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKIAogICAgIHByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKICAgICBlbWl0UHV0
VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOwpAQCAtMTI3
Niw4ICsxMjc2LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wbmFtZXMoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBnZXRQbmFtZXNTdHViQ2FsbC5hZGRBcmd1bWVudChy
ZWdUMCk7CiAgICAgZ2V0UG5hbWVzU3R1YkNhbGwuY2FsbChkc3QpOwogICAgIGxvYWQzMihBZGRy
ZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciwgbV9qc1N0
cmluZ3NTaXplKSksIHJlZ1QzKTsKLSAgICBzdG9yZTMyKEltbTMyKDApLCBhZGRyZXNzRm9yKGkp
KTsKLSAgICBzdG9yZTMyKHJlZ1QzLCBhZGRyZXNzRm9yKHNpemUpKTsKKyAgICBzdG9yZTMyKElt
bTMyKEludDMyVGFnKSwgaW50VGFnRm9yKGkpKTsKKyAgICBzdG9yZTMyKEltbTMyKDApLCBpbnRQ
YXlsb2FkRm9yKGkpKTsKKyAgICBzdG9yZTMyKEltbTMyKEludDMyVGFnKSwgaW50VGFnRm9yKHNp
emUpKTsKKyAgICBzdG9yZTMyKHJlZ1QzLCBwYXlsb2FkRm9yKHNpemUpKTsKICAgICBKdW1wIGVu
ZCA9IGp1bXAoKTsKIAogICAgIGlzTm90T2JqZWN0LmxpbmsodGhpcyk7CkBAIC0xMzAzLDExICsx
MzA1LDExIEBAIHZvaWQgSklUOjplbWl0X29wX25leHRfcG5hbWUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBKdW1wTGlzdCBjYWxsSGFzUHJvcGVydHk7CiAKICAgICBMYWJl
bCBiZWdpbih0aGlzKTsKLSAgICBsb2FkMzIoYWRkcmVzc0ZvcihpKSwgcmVnVDApOwotICAgIEp1
bXAgZW5kID0gYnJhbmNoMzIoRXF1YWwsIHJlZ1QwLCBhZGRyZXNzRm9yKHNpemUpKTsKKyAgICBs
b2FkMzIoaW50UGF5bG9hZEZvcihpKSwgcmVnVDApOworICAgIEp1bXAgZW5kID0gYnJhbmNoMzIo
RXF1YWwsIHJlZ1QwLCBpbnRQYXlsb2FkRm9yKHNpemUpKTsKIAogICAgIC8vIEdyYWIga2V5IEAg
aQotICAgIGxvYWRQdHIoYWRkcmVzc0ZvcihpdCksIHJlZ1QxKTsKKyAgICBsb2FkUHRyKHBheWxv
YWRGb3IoaXQpLCByZWdUMSk7CiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBPQkpFQ1RfT0ZG
U0VUT0YoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciwgbV9qc1N0cmluZ3MpKSwgcmVnVDIpOwogICAg
IGxvYWQzMihCYXNlSW5kZXgocmVnVDIsIHJlZ1QwLCBUaW1lc0VpZ2h0KSwgcmVnVDIpOwogICAg
IHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0Zvcihkc3QpKTsKQEAgLTEzMTUs
MTAgKzEzMTcsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbmV4dF9wbmFtZShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogCiAgICAgLy8gSW5jcmVtZW50IGkKICAgICBhZGQzMihJbW0z
MigxKSwgcmVnVDApOwotICAgIHN0b3JlMzIocmVnVDAsIGFkZHJlc3NGb3IoaSkpOworICAgIHN0
b3JlMzIocmVnVDAsIGludFBheWxvYWRGb3IoaSkpOwogCiAgICAgLy8gVmVyaWZ5IHRoYXQgaSBp
cyB2YWxpZDoKLSAgICBsb2FkUHRyKGFkZHJlc3NGb3IoYmFzZSksIHJlZ1QwKTsKKyAgICBsb2Fk
UHRyKHBheWxvYWRGb3IoYmFzZSksIHJlZ1QwKTsKIAogICAgIC8vIFRlc3QgYmFzZSdzIHN0cnVj
dHVyZQogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTQ2VsbCwg
bV9zdHJ1Y3R1cmUpKSwgcmVnVDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVy
ZmFjZUpJVC5oCmluZGV4IDY0NTNiYWI1ZDhjMDQ4ZWQ4ZjZjMzQ5M2NiMGY0MTgxYmUzMmY0YjMu
Ljg4NmQyN2NmZTFlNDkxMjUxNGFiODUxYTAwMzRiMGIzMWU4MzMyZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJKU0ltbWVk
aWF0ZS5oIgorI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyRmlsZS5oIgogI2luY2x1ZGUgPHd0Zi9BbHdheXNJbmxpbmUu
aD4KQEAgLTE1Nyw2ICsxNTgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZXJyb3IgIkpJVCBub3Qg
c3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIgogI2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW50MzJUYWcgPSBKU1ZhbHVlOjpJ
bnQzMlRhZzsKKyNlbHNlCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnQzMlRhZyA9
IEpTSW1tZWRpYXRlOjpUYWdUeXBlTnVtYmVyID4+IDMyOworI2VuZGlmCiAgICAgICAgIGlubGlu
ZSBKdW1wIGVtaXRMb2FkSlNDZWxsKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdp
c3RlcklEIHBheWxvYWQpOwogICAgICAgICBpbmxpbmUgSnVtcCBlbWl0TG9hZEludDMyKHVuc2ln
bmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGRzdCk7CiAgICAgICAgIGlubGlu
ZSBKdW1wIGVtaXRMb2FkRG91YmxlKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBGUFJl
Z2lzdGVySUQgZHN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpOwpAQCAtMTczLDYgKzE3OSw4IEBAIG5h
bWVzcGFjZSBKU0MgewogI2VuZGlmCiAKICAgICAgICAgaW5saW5lIEFkZHJlc3MgcGF5bG9hZEZv
cih1bnNpZ25lZCBpbmRleCwgUmVnaXN0ZXJJRCBiYXNlID0gY2FsbEZyYW1lUmVnaXN0ZXIpOwor
ICAgICAgICBpbmxpbmUgQWRkcmVzcyBpbnRQYXlsb2FkRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdp
c3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGlubGluZSBBZGRyZXNz
IGludFRhZ0Zvcih1bnNpZ25lZCBpbmRleCwgUmVnaXN0ZXJJRCBiYXNlID0gY2FsbEZyYW1lUmVn
aXN0ZXIpOwogICAgICAgICBpbmxpbmUgQWRkcmVzcyBhZGRyZXNzRm9yKHVuc2lnbmVkIGluZGV4
LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgfTsKIApAQCAtMjE0
LDYgKzIyMiwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFz
ZSwgKHZpcnR1YWxSZWdpc3RlckluZGV4ICogc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZG
U0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpOwogICAgIH0KIAorICAgIGlubGluZSBK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6aW50UGF5bG9hZEZvcih1bnNp
Z25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgsIGJhc2UpOworICAgIH0K
KworICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6aW50
VGFnRm9yKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJhc2UpCisg
ICAgeworICAgICAgICByZXR1cm4gdGFnRm9yKHZpcnR1YWxSZWdpc3RlckluZGV4LCBiYXNlKTsK
KyAgICB9CisKICAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6Okp1bXAgSlNJbnRlcmZhY2VKSVQ6
OmVtaXRMb2FkRG91YmxlKHVuc2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBGUFJlZ2lzdGVy
SUQgZHN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpCiAgICAgewogICAgICAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8aW50Pih2aXJ0dWFsUmVnaXN0ZXJJbmRleCkgPCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJ
bmRleCk7CkBAIC0yNzksNiArMjk3LDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8aW50Pih2aXJ0dWFsUmVnaXN0ZXJJbmRleCkgPCBGaXJzdENvbnN0YW50
UmVnaXN0ZXJJbmRleCk7CiAgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rl
ckluZGV4LCBiYXNlKTsKICAgICB9CisKKyAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MgSlNJbnRlcmZhY2VKSVQ6OmludFBheWxvYWRGb3IodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVy
SW5kZXgsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4
KTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZSwgKHZpcnR1YWxSZWdpc3RlckluZGV4ICog
c2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnBheWxvYWQpKTsKKyAgICB9CisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzIEpTSW50ZXJmYWNlSklUOjppbnRUYWdGb3IodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVy
SW5kZXgsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxpbnQ+KHZpcnR1YWxSZWdpc3RlckluZGV4KSA8IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4
KTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZSwgKHZpcnR1YWxSZWdpc3RlckluZGV4ICog
c2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpOworICAgIH0KICNlbmRpZgogCiAgICAgaW5saW5lIEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzIEpTSW50ZXJmYWNlSklUOjphZGRyZXNzRm9yKHVuc2lnbmVkIHZpcnR1YWxS
ZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCmluZGV4IDVjNTkzZDk5ZDg2MDQ5YzFiZTY5NjY5
ZGE2M2ZlNGFkOTJlOWEzMDIuLjhiZDRlYzQ5YzhiYzJiNzE1MTljYzQ4NDdjOWY0YjZkMjIxNzUy
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJ
VC5oCkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7
Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUgKiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlcik7CisgICAgICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IoUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZSwgY2FsbEZyYW1lUmVnaXN0ZXIpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAg
ICAgICByZXQoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdp
c3RlciwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykgLSBzaXplb2YoZG91
YmxlKSksIHJlZ1QxKTsKICAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJS
ZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpIC0gc2l6
ZW9mKGRvdWJsZSkpLCByZWdUMCk7CiAjZW5kaWYKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVz
cyhjYWxsRnJhbWVSZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6
ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIo
cGF5bG9hZEZvcihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3Rlciks
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAg
LTExMCw3ICsxMTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0g
cmVnVDApCiAgICAgICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRh
Z1JldHVybkFzSW50MzIoKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVS
ZWdpc3RlciwgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSAqIChpbnQpc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcihS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3RlciksIGNhbGxGcmFtZVJl
Z2lzdGVyKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTExOSw3ICsxMTks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAg
ICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSlND
ZWxsKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIFJl
Z2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUgKiAoaW50KXNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJh
bWVSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IoUmVnaXN0ZXJGaWxl
OjpDYWxsZXJGcmFtZSwgY2FsbEZyYW1lUmVnaXN0ZXIpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAg
ICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKaW5kZXggMjVhODkxNjQxOTYwOGUyNjg0YWI0YzkzYjRj
MDdhZGUzYjI4NmFhMi4uYWUzY2ExMWY1MWJiMmE5MWQ5MTk2ZjcyMjYzMTU3NDg0OTQ5YTI3YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5jcHAKQEAgLTIzLDYgKzIz
LDcgQEAKIAogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKKyNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKIAogdXNpbmcgc3RkOjpt
aW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5j
cHAKaW5kZXggNTk3ZjFlOWExODViM2U3ZWIxNmRjNTQwMzg0YWVkM2VjZTI5OWQ5OS4uMTQxODg3
NmVkMTQ5MmMxZGNlNTJhZDlkN2E4MDkzNmE2Y2E4YmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIkRhdGVDb252ZXJzaW9uLmgiCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNp
bmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKICNpbmNsdWRlICJV
U3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2tDRi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2tDRi5jcHAKaW5kZXggYTk0
MWNmYTk0MjhkYjllMjU3OGVmMmVmOGI5OGU3Y2RjNTlmNzZmYy4uMmU4NzhiZmUzZDZkMjQ2NGFl
YWNkNjZiYjA4MjRiYzFmZWJiNjkwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR0NBY3Rpdml0eUNhbGxiYWNrQ0YuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dDQWN0aXZpdHlDYWxsYmFja0NGLmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJK
U0xvY2suaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIK
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERhdGEu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAKaW5kZXgg
Mzk5MjQxODQ4ODhkODVhZjMzN2UxZDZkOThmMTZlZmY3MzdlMTMzNi4uNTFkZmNiYjA1YjVhNmQ5
YTg2N2QwYWM3NzM4MjEwNmE2MjA4MWExNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJJZGVudGlm
aWVyLmgiCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgog
I2luY2x1ZGUgIk51bWVyaWNTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU2NvcGVDaGFpbi5oIgogI2lu
Y2x1ZGUgPG5ldz4gLy8gZm9yIHBsYWNlbWVudCBuZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggNTZlMjY0N2QwZThiYjQxMGNkYTY1NTRhOTY5
NDJkYWFiZWI0NjQ1ZC4uZWJjOTlmMWVjMGU1NTJhMzk4OGRkZTAxMWMzMDgyMWViNjljZmQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTkx
LDYgKzkxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBU1NFUlQoYXNPYmplY3QodmFs
dWUpLT5pbmhlcml0cygmSlNBY3RpdmF0aW9uOjpzX2luZm8pKTsKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQWN0aXZhdGlvbio+KGFzT2JqZWN0KHZhbHVlKSk7CiAgICAgfQorICAgIAor
ICAgIEFMV0FZU19JTkxJTkUgSlNBY3RpdmF0aW9uKiBSZWdpc3Rlcjo6YWN0aXZhdGlvbigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gYXNBY3RpdmF0aW9uKGpzVmFsdWUoKSk7CisgICAg
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAKaW5kZXggNjRkY2IwOGZmZjJmMmU1ZDYyNTQ2Zjk2ZjlkNThjNjMwODIxOTY4Ni4u
ZmM1NDNmMGU4MmY3MmY3NjhiOGM3NTY0NTg4NWJjYzFmMTYzYWNlMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRl
ICJIZWFwLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIK
ICNpbmNsdWRlICJTY29wZUNoYWluLmgiCiAKICNpZiBVU0UoUFRIUkVBRFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU051bWJlckNlbGwuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOdW1iZXJDZWxsLmNwcAppbmRleCAzMTcyY2M5MzU1
YTFkYmRiYjk0ZDczODk3NmI4M2JkZWQyNjgzMzRkLi43OWYyZDJhMzNlZDc2ZmVkYWZjZTEyM2Jm
Mzc1NjkzZWUzZjUyNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU051bWJlckNlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TnVtYmVyQ2VsbC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTTnVtYmVyQ2VsbC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU2NvcGVDaGFpbi5oIgogCiAvLyBLZWVwIG91ciBleHBvcnRlZCBzeW1ib2xzIGxpc3RzIGhh
cHB5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggMmI0ZGI0
M2I5NDFkNjc2N2VmOTYwYzMwNzFmZDlkYjY5ZWM0ZmU5Ni4uZWVmMzdiMjJhNmUzMzY1ZGJjYjFm
M2NlOGZkZWIzMzFmOWZhODQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC04NDAsNiArODQwLDIwIEBAIGlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OnRvU3Ry
aWN0VGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGFzT2JqZWN0
KGFzQ2VsbCgpKS0+dG9TdHJpY3RUaGlzT2JqZWN0KGV4ZWMpOwogfQogCitBTFdBWVNfSU5MSU5F
IEpTT2JqZWN0KiBSZWdpc3Rlcjo6ZnVuY3Rpb24oKSBjb25zdAoreworICAgIGlmICghanNWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXNPYmplY3QoanNWYWx1ZSgpKTsK
K30KKworQUxXQVlTX0lOTElORSBSZWdpc3RlciBSZWdpc3Rlcjo6d2l0aENhbGxlZShKU09iamVj
dCogY2FsbGVlKQoreworICAgIFJlZ2lzdGVyIHI7CisgICAgciA9IEpTVmFsdWUoY2FsbGVlKTsK
KyAgICByZXR1cm4gcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU09i
amVjdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggZDUxY2JhOGQ4MzYyMTQ2YjY4OGM5NWFmNzU4NGE1NDhi
ZWNiYjU3MC4uOTBmNDQ5ZWUyMWU5N2UyNzgwZDQxMjQ5ZDM3MzU1N2M5MzJhODE5OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaApAQCAtMTA2LDYgKzEwNiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIG1fZW51bWVyYXRpb25DYWNoZS5nZXQoKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5F
IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIFJlZ2lzdGVyOjpwcm9wZXJ0eU5hbWVJdGVyYXRvcigp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvcio+KGpzVmFsdWUoKS5hc0NlbGwoKSk7CisgICAgfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIEpTUHJvcGVydHlOYW1lSXRlcmF0b3JfaApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYWx1ZS5oCmluZGV4IDczOGVkYTBmODFhMWY0NjM0NWQyMjE5MjBhNGMz
NDIzYjVkNWRjNDYuLjBmZDZjNGNiNDMxZjczNzAwMDM3YWZlZDBjNTQ5NDY1OGVhYmNiMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKQEAgLTUyLDExICs1MiwzMyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGVudW0gUHJlZmVycmVkUHJpbWl0aXZlVHlwZSB7IE5v
UHJlZmVyZW5jZSwgUHJlZmVyTnVtYmVyLCBQcmVmZXJTdHJpbmcgfTsKIAorCiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKICAgICB0eXBlZGVmIGludDY0X3QgRW5jb2RlZEpTVmFsdWU7CiAjZWxzZQog
ICAgIHR5cGVkZWYgdm9pZCogRW5jb2RlZEpTVmFsdWU7CiAjZW5kaWYKKyAgICAKKyAgICB1bmlv
biBFbmNvZGVkVmFsdWVEZXNjcmlwdG9yIHsKKyAgICAgICAgRW5jb2RlZEpTVmFsdWUgYXNFbmNv
ZGVkSlNWYWx1ZTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBkb3VibGUgYXNEb3Vi
bGU7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU0NlbGwqIHB0cjsKKyNlbmRpZgor
ICAgICAgICAKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIGludDMyX3QgdGFnOworICAgICAgICAgICAgaW50MzJfdCBwYXlsb2FkOworICAgICAgICB9
IGFzQml0czsKKyNlbHNlCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBpbnQzMl90IHBh
eWxvYWQ7CisgICAgICAgICAgICBpbnQzMl90IHRhZzsKKyAgICAgICAgfSBhc0JpdHM7CisjZW5k
aWYKKyAgICB9OwogCiAgICAgZG91YmxlIG5vbklubGluZU5hTigpOwogCkBAIC0yMzksMjggKzI2
MSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZW51bSB7IERlbGV0ZWRWYWx1ZVRhZyA9
IDB4ZmZmZmZmZjggfTsKICAgICAgICAgCiAgICAgICAgIGVudW0geyBMb3dlc3RUYWcgPSAgRGVs
ZXRlZFZhbHVlVGFnIH07Ci0gICAgICAgIAorCiAgICAgICAgIHVpbnQzMl90IHRhZygpIGNvbnN0
OwogICAgICAgICBpbnQzMl90IHBheWxvYWQoKSBjb25zdDsKIAotICAgICAgICB1bmlvbiB7Ci0g
ICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSBhc0VuY29kZWRKU1ZhbHVlOwotICAgICAgICAgICAg
ZG91YmxlIGFzRG91YmxlOwotI2lmIENQVShCSUdfRU5ESUFOKQotICAgICAgICAgICAgc3RydWN0
IHsKLSAgICAgICAgICAgICAgICBpbnQzMl90IHRhZzsKLSAgICAgICAgICAgICAgICBpbnQzMl90
IHBheWxvYWQ7Ci0gICAgICAgICAgICB9IGFzQml0czsKLSNlbHNlCi0gICAgICAgICAgICBzdHJ1
Y3QgewotICAgICAgICAgICAgICAgIGludDMyX3QgcGF5bG9hZDsKLSAgICAgICAgICAgICAgICBp
bnQzMl90IHRhZzsKLSAgICAgICAgICAgIH0gYXNCaXRzOwotI2VuZGlmCi0gICAgICAgIH0gdTsK
LSNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IgdTsKKyNlbGlmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIEpTQ2VsbCogbV9wdHI7Ci0jZW5k
aWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKKyNlbmRpZgogICAgIH07CiAKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNab21i
aWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNab21iaWUuY3BwCmluZGV4
IDg2ZGNjNzI2YjI1NzA3YWNlOWZhMGRlNjAxMjc5YmZjOWI0ZDg5OTQuLjIzY2YxMzVmOTA4MzVh
MzdiNjcxMGU1ZmMwMzZiMWNjOWM0ZDg0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTWm9tYmllLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1pvbWJpZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJKU1pvbWJpZS5oIgogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgorI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NvcGVDaGFpbi5oIgogCiAjaWYgRU5BQkxFKEpTQ19a
T01CSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2Vk
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkQmxvY2suY3Bw
CmluZGV4IGI5ODY1ZmExMzQwOGRkOTQxYWE2YzZjMWFkNjQzYzAyYmUzODQxN2UuLmNhZTcwMWZh
MmNiMWJjZmUwN2ZmYjQwOTU3ZTQ4NGZjNDFlN2M2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJNYXJrZWRCbG9jay5oIgogCiAjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU1pvbWJpZS5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCmluZGV4IGZk
YjY0YjlhNjAyYTllNDQzNGJkOWJiMWVlMGQxZTRhNGQzNThlZDguLmQ5YTFlNDIxYmFiOTkzZTk2
YmI4ZGQ4MDg2OGVjZDkyZDg1NmU5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXJrZWRTcGFjZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0NlbGwu
aCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKKyNpbmNs
dWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKIAogbmFtZXNwYWNlIEpT
QyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5h
bWVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5jcHAKaW5kZXggMzUxZWNjM2VmOWM0M2MyZjliMWQyNDRkNjMwZjY0Zjg2Yzk0MTU3OS4u
OGVmYjQwNjVlMTczOWNmMDVkNWQ5MTY2Yzc1YmVjZDgwZGRlMzBmYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmNwcApAQCAtMjEs
NiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFy
cmF5LmgiCiAKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVDaGFpbi5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCmluZGV4IGZiZWNkMTE3ZTBl
N2NhY2QzNzc5YzY4ZDM3NTc1NTg4MWUzYTgxMTIuLjA4MjJmNTRlYTA0NjJlYzc2NmJmMGZiMWQy
MDUzNGRmZTYyM2Q0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Njb3BlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNo
YWluLmgKQEAgLTEyOCw2ICsxMjgsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAg
ICByZXR1cm4gc2NvcGVDaGFpbigpLT5nbG9iYWxUaGlzLmdldCgpOwogICAgIH0KKyAgICAKKyAg
ICBBTFdBWVNfSU5MSU5FIFNjb3BlQ2hhaW5Ob2RlKiBSZWdpc3Rlcjo6c2NvcGVDaGFpbigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2NvcGVDaGFpbk5vZGUqPihq
c1ZhbHVlKCkuYXNDZWxsKCkpOworICAgIH0KKyAgICAKKyAgICBBTFdBWVNfSU5MSU5FIFJlZ2lz
dGVyJiBSZWdpc3Rlcjo6b3BlcmF0b3I9KFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQorICAg
IHsKKyAgICAgICAgKnRoaXMgPSBKU1ZhbHVlKHNjb3BlQ2hhaW4pOworICAgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRlTWF0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0RhdGVNYXRoLmNwcAppbmRleCA0ZWFmNGUxNTc4OTA0MmJhM2Q5MzdmYzA5Mzc4ZGJkMTM5
YmZjMzFjLi43MGMwY2Y0N2Y1Zjc5Y2JmYzMzMWY3YTE3ZmE5N2U5YTdjYmM2N2RjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmNwcApAQCAtNzUsNiArNzUsOSBAQAogI2luY2x1
ZGUgIkFzc2VydGlvbnMuaCIKICNpbmNsdWRlICJBU0NJSUNUeXBlLmgiCiAjaW5jbHVkZSAiQ3Vy
cmVudFRpbWUuaCIKKyNpZiBVU0UoSlNDKQorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjZW5kaWYK
ICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJTY29wZUNo
YWluLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNGE2MWIyMmMyMDM5NjkzNjQ0OGQ2NGM0OGI5ZGM2NzYyYmQ4
YTllYy4uZTMzYmQ4Njc2YzczNGNmZjhhMzg4NjM3Y2E0OWNlNTBlYWQyMDhlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RW5zdXJlIGFsbCB2YWx1ZXMgYXJlIGNvcnJlY3RseSB0YWdnZWQgaW4gdGhlIHJlZ2lzdGVyZmls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTQK
KworICAgICAgICBNYWtlIHN1cmUgZXZlcnl0aGluZyBidWlsZHMgc3RpbGwuCisKKyAgICAgICAg
KiBicmlkZ2UvYy9jX2NsYXNzLmNwcDoKKyAgICAgICAgKiBicmlkZ2UvYy9jX3J1bnRpbWUuY3Bw
OgorICAgICAgICAqIGJyaWRnZS9qbmkvSmF2YU1ldGhvZC5jcHA6CisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5WaWV3Tm9uZS5jcHA6CisKIDIwMTEtMDMtMTEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2NsYXNzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwCmluZGV4IGE4MDg5NDY1ODliMjlkMjk4ZWNh
YjA5YjJhZTA0MjI5NmI4YTU5M2YuLjRmOWNkZDkwZjI4NGJlZmNjYjM1NDJlNmNhZTlhNDExOWQ1
OGU2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSA8cnVudGltZS9TY29wZUNoYWluLmg+CiAjaW5jbHVkZSA8cnVudGltZS9JZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1l
L0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEJpbmRpbmdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9jL2NfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3J1bnRp
bWUuY3BwCmluZGV4IGY4YzBkYmE4ZDYzYzU5NDI5MTI2MDBhY2NhY2ViYWI3MTI4ZDk4MjMuLmE4
NGFjYmJlMzc5NWQxNDI3OTJlMDY1ZWVkZmJjNTBhMTAwNTZlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2MvY19ydW50aW1lLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIm5wcnVudGlt
ZV9pbXBsLmgiCiAjaW5jbHVkZSA8cnVudGltZS9TY29wZUNoYWluLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewogbmFtZXNwYWNlIEJpbmRpbmdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0ph
dmFNZXRob2QuY3BwCmluZGV4IDU1ZjI5ZGZhNGE1NWMxM2ZkODVkOTM5NmQxY2UwZTI4ODVjNGYz
ODEuLjY1YWFkNDg2MjY1YjY2NTFiN2U3ODJlYWM1MTRhMzg3YjBiMGZjYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5j
bHVkZSAiSmF2YVN0cmluZy5oIgogCisjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvU2NvcGVDaGFpbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
Tm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAppbmRl
eCAzODNhYzQ5MTIzNGMzYzllNjYxMmI1ODZkMmVmNmJhNDhkZjVlZDg4Li4zYmRlYzZmZTViNzg1
NTA1NTNkYTFjN2FjYWIwNzMxYzYwMTJiNTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXdOb25lLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKEpTQykKICNpbmNs
dWRlICJCcmlkZ2VKU0MuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9TY29wZUNoYWluLmg+CiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>