<?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>103354</bug_id>
          
          <creation_ts>2012-11-26 20:58:35 -0800</creation_ts>
          <short_desc>REGRESSION(r135798): Broke the chrome mac build (Requested by noel_ on #webkit).</short_desc>
          <delta_ts>2012-11-26 21:07:45 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>haraken</cc>
    
    <cc>hclam</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776275</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:58:35 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/135798 broke the build:
Broke the chrome mac build (Requested by noel_ on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776277</commentid>
    <comment_count>1</comment_count>
      <attachid>176160</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:59:17 -0800</bug_when>
    <thetext>Created attachment 176160
ROLLOUT of r135798

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776282</commentid>
    <comment_count>2</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-11-26 21:07:02 -0800</bug_when>
    <thetext>I don&apos;t think we need to revert this patch. It should a simple fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776284</commentid>
    <comment_count>3</comment_count>
      <attachid>176160</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-26 21:07:41 -0800</bug_when>
    <thetext>Comment on attachment 176160
ROLLOUT of r135798

Clearing flags on attachment: 176160

Committed r135815: &lt;http://trac.webkit.org/changeset/135815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776285</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-26 21:07:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176160</attachid>
            <date>2012-11-26 20:59:17 -0800</date>
            <delta_ts>2012-11-26 21:07:41 -0800</delta_ts>
            <desc>ROLLOUT of r135798</desc>
            <filename>bug-103354-20121127050533.patch</filename>
            <type>text/plain</type>
            <size>45520</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMxMGYwYzg0MDg5YTRh
MGE2Mzg1MjZhMmM1ZDg1OGIzYzE2M2JkNC4uODRmYzE4OTQwODI0MThiNzhjOTczNjRkZDI4OTc5
MWJiZjhkNzlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTI2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM1Nzk4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzU3OTgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzM1NAorCisgICAgICAgIEJyb2tlIHRoZSBjaHJvbWUgbWFjIGJ1aWxkIChS
ZXF1ZXN0ZWQgYnkgbm9lbF8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZWZlcnJlZEltYWdlRGVjb2Rlcjo6fkRlZmVycmVkSW1hZ2VEZWNvZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmVycmVkSW1hZ2VEZWNvZGVyOjpjcmVhdGVSZXNpemVkTGF6eURlY29kaW5n
Qml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkSW1hZ2VEZWNvZGVyOjpmcmFtZUJ1
ZmZlckF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6OmNy
ZWF0ZUxhenlEZWNvZGluZ0JpdG1hcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaDoKKyAgICAgICAgKERlZmVycmVkSW1hZ2VEZWNv
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZURlY29kaW5n
U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5j
ZU9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kaW5nU3RvcmU6Omlu
aXRpYWxpemVPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGluZ1N0
b3JlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kaW5nU3RvcmU6OmNh
bGxlZE9uVmFsaWRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGluZ1N0b3Jl
Ojpsb29rdXBGcmFtZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RpbmdTdG9y
ZTo6ZGVsZXRlRnJhbWVDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSW1hZ2VEZWNvZGluZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElt
YWdlRGVjb2RpbmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SW1hZ2VGcmFtZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lR2Vu
ZXJhdG9yOjpJbWFnZUZyYW1lR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJh
bWVHZW5lcmF0b3I6On5JbWFnZUZyYW1lR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlRnJhbWVHZW5lcmF0b3I6OnNldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFt
ZUdlbmVyYXRvcjo6ZGVjb2RlQW5kU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUdlbmVyYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKElt
YWdlRnJhbWVHZW5lcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xhenlEZWNvZGluZ1BpeGVsUmVmLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxhenlEZWNvZGlu
Z1BpeGVsUmVmOjpMYXp5RGVjb2RpbmdQaXhlbFJlZik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5
RGVjb2RpbmdQaXhlbFJlZjo6b25Mb2NrUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlE
ZWNvZGluZ1BpeGVsUmVmOjpvblVubG9ja1BpeGVscyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF6eURlY29kaW5nUGl4ZWxSZWYuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoTGF6eURlY29kaW5nUGl4ZWxSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NhbGVkSW1hZ2VGcmFnbWVudDo6U2NhbGVkSW1hZ2VGcmFnbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY2FsZWRJbWFnZUZyYWdtZW50Ojppc0VxdWFsKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVkSW1hZ2VG
cmFnbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFNjYWxlZEltYWdlRnJhZ21lbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrU2l6ZUhhc2guaDogUmVtb3ZlZC4KKwog
MjAxMi0xMS0yNiAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAog
ICAgICAgICBbVGV4TWFwXSBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0U2l6ZSgpIHNl
dHMgdGhlIHNpemUgb2YgYSBtYXNrIGxheWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA3MTIzYmRiNGNlNTRkYTdmYjZhOGRlOTExOTk4OTdhMDQyMGEwYzEyLi5iYWE3MTk0YjZlYjQ0
ZGI5MThjZGU1NmY3YjcyOTAyNmFkOWVkMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTExLTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM1Nzk4
LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzU3OTgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzM1NAorCisgICAg
ICAgIEJyb2tlIHRoZSBjaHJvbWUgbWFjIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgbm9lbF8gb24gI3dl
YmtpdCkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBzcmMvV2ViS2l0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVdpdGhvdXRWOCk6CisgICAgICAgICogc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6
c2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCk6CisgICAgICAgICogdGVzdHMvRGVmZXJy
ZWRJbWFnZURlY29kZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkSW1hZ2VE
ZWNvZGVyVGVzdDo6U2V0VXApOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29k
ZXJUZXN0OjpkZWNvZGVyQmVpbmdEZXN0cm95ZWQpOgorICAgICAgICAqIHRlc3RzL0ltYWdlRnJh
bWVHZW5lcmF0b3JUZXN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0cy9Nb2NrSW1hZ2VE
ZWNvZGVyLmg6CisgICAgICAgIChNb2NrSW1hZ2VEZWNvZGVyQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tJbWFnZURlY29kZXI6OmZyYW1lQnVmZmVyQXRJbmRleCk6CisKIDIwMTItMTEt
MjYgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBUb3VjaHNjcmVlbiBmbGluZyBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFn
ZURlY29kZXIuY3BwCmluZGV4IGZmOGJmMzA4YjRjZTZjMGQyMmEyNjk4OGNkMDQyMWUzOTkwNjk4
MDIuLjE0ZGU2OTRlODMzY2FlMDc5MDkwMTkyNzg0ZDgwNDkwYjM0MThhYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VE
ZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKQEAgLTQwLDggKzQwLDYgQEAgY29uc3QgY2hhciBs
YWJlbExhenlEZWNvZGVkW10gPSAibGF6eSI7CiAKIH0gLy8gbmFtZXNwYWNlCiAKLWJvb2wgRGVm
ZXJyZWRJbWFnZURlY29kZXI6OnNfZW5hYmxlZCA9IGZhbHNlOwotCiBEZWZlcnJlZEltYWdlRGVj
b2Rlcjo6RGVmZXJyZWRJbWFnZURlY29kZXIoSW1hZ2VEZWNvZGVyKiBhY3R1YWxEZWNvZGVyKQog
ICAgIDogbV9hbGxEYXRhUmVjZWl2ZWQoZmFsc2UpCiAgICAgLCBtX2FjdHVhbERlY29kZXIoYWRv
cHRQdHIoYWN0dWFsRGVjb2RlcikpCkBAIC01MSw2ICs0OSw4IEBAIERlZmVycmVkSW1hZ2VEZWNv
ZGVyOjpEZWZlcnJlZEltYWdlRGVjb2RlcihJbWFnZURlY29kZXIqIGFjdHVhbERlY29kZXIpCiAK
IERlZmVycmVkSW1hZ2VEZWNvZGVyOjp+RGVmZXJyZWRJbWFnZURlY29kZXIoKQogeworICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnkgaW4gSW1hZ2VEZWNvZGluZ1N0
b3JlIGlmIGltYWdlCisgICAgLy8gaXMgZGVmZXItZGVjb2RlZC4KIH0KIAogRGVmZXJyZWRJbWFn
ZURlY29kZXIqIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVy
JiBkYXRhLCBJbWFnZVNvdXJjZTo6QWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEltYWdlU291cmNl
OjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yT3B0aW9uKQpAQCAtODAs
MTAgKzgwLDYgQEAgU2tCaXRtYXAgRGVmZXJyZWRJbWFnZURlY29kZXI6OmNyZWF0ZVJlc2l6ZWRM
YXp5RGVjb2RpbmdCaXRtYXAoY29uc3QgU2tCaXRtYXAmIGIKIAogICAgIFNrQml0bWFwIHJlc2l6
ZWRCaXRtYXA7CiAgICAgcmVzaXplZEJpdG1hcC5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4
ODhfQ29uZmlnLCBzY2FsZWRTdWJzZXQud2lkdGgoKSwgc2NhbGVkU3Vic2V0LmhlaWdodCgpLCBy
b3dCeXRlcyk7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGhhcyB0aGUgcG90ZW50aWFsIHBy
b2JsZW0gdGhhdCBtdWx0aXBsZQotICAgIC8vIExhenlEZWNvZGluZ1BpeGVsUmVmcyBhcmUgY3Jl
YXRlZCBldmVuIHRob3VnaCB0aGV5IHNoYXJlIHRoZSBzYW1lCi0gICAgLy8gc2NhbGVkIHNpemUg
YW5kIEltYWdlRnJhbWVHZW5lcmF0b3IuCiAgICAgcmVzaXplZEJpdG1hcC5zZXRQaXhlbFJlZihu
ZXcgTGF6eURlY29kaW5nUGl4ZWxSZWYocGl4ZWxSZWYtPmZyYW1lR2VuZXJhdG9yKCksIHNjYWxl
ZFNpemUsIHNjYWxlZFN1YnNldCkpLT51bnJlZigpOwogCiAgICAgLy8gU2VlIGNvbW1lbnRzIGlu
IGNyZWF0ZUxhenlEZWNvZGluZ0JpdG1hcCgpLgpAQCAtOTEsMTEgKzg3LDYgQEAgU2tCaXRtYXAg
RGVmZXJyZWRJbWFnZURlY29kZXI6OmNyZWF0ZVJlc2l6ZWRMYXp5RGVjb2RpbmdCaXRtYXAoY29u
c3QgU2tCaXRtYXAmIGIKICAgICByZXR1cm4gcmVzaXplZEJpdG1hcDsKIH0KIAotdm9pZCBEZWZl
cnJlZEltYWdlRGVjb2Rlcjo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgc19lbmFi
bGVkID0gZW5hYmxlZDsKLX0KLQogU3RyaW5nIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpmaWxlbmFt
ZUV4dGVuc2lvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0
dWFsRGVjb2Rlci0+ZmlsZW5hbWVFeHRlbnNpb24oKSA6IG1fZmlsZW5hbWVFeHRlbnNpb247CkBA
IC0xMDcsNyArOTgsNyBAQCBJbWFnZUZyYW1lKiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6ZnJhbWVC
dWZmZXJBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICAvLyBiZWNhdXNlIGEgbXVsdGlmcmFtZSBp
cyB1c3VhbGx5IGFuaW1hdGVkIEdJRi4gQW5pbWF0aW9uIGlzIGhhbmRsZWQgYnkKICAgICAvLyBC
aXRtYXBJbWFnZSB3aGljaCB1c2VzIHNvbWUgbWV0YWRhdGEgZnVuY3Rpb25zIHRoYXQgZG8gc3lu
Y2hyb25vdXMgaW1hZ2UKICAgICAvLyBkZWNvZGluZy4KLSAgICBpZiAoc19lbmFibGVkCisgICAg
aWYgKEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2VPbk1haW5UaHJlYWQoKQogICAgICAgICAm
JiBtX2FjdHVhbERlY29kZXIKICAgICAgICAgJiYgbV9hY3R1YWxEZWNvZGVyLT5yZXBldGl0aW9u
Q291bnQoKSA9PSBjQW5pbWF0aW9uTm9uZQogICAgICAgICAmJiBtX2FjdHVhbERlY29kZXItPmlz
U2l6ZUF2YWlsYWJsZSgpKSB7CkBAIC0yMDksNyArMjAwLDcgQEAgU2tCaXRtYXAgRGVmZXJyZWRJ
bWFnZURlY29kZXI6OmNyZWF0ZUxhenlEZWNvZGluZ0JpdG1hcCgpCiAgICAgU2tCaXRtYXAgYml0
bWFwOwogICAgIGJpdG1hcC5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnLCBm
dWxsU2l6ZS53aWR0aCgpLCBmdWxsU2l6ZS5oZWlnaHQoKSk7CiAKLSAgICBtX2ZyYW1lR2VuZXJh
dG9yID0gSW1hZ2VGcmFtZUdlbmVyYXRvcjo6Y3JlYXRlKGZ1bGxTaXplLCBtX2RhdGEucmVsZWFz
ZSgpLCBtX2FsbERhdGFSZWNlaXZlZCk7CisgICAgbV9mcmFtZUdlbmVyYXRvciA9IEltYWdlRnJh
bWVHZW5lcmF0b3I6OmNyZWF0ZShtX2RhdGEucmVsZWFzZSgpLCBtX2FsbERhdGFSZWNlaXZlZCk7
CiAgICAgbV9hY3R1YWxEZWNvZGVyLmNsZWFyKCk7CiAKICAgICBiaXRtYXAuc2V0UGl4ZWxSZWYo
bmV3IExhenlEZWNvZGluZ1BpeGVsUmVmKG1fZnJhbWVHZW5lcmF0b3IsIGZ1bGxTaXplLCBmdWxs
UmVjdCkpLT51bnJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmgKaW5kZXggNWRm
OTIzNTRiZGRkMDljOGRiM2MxMTZmNmE1N2JiOTk2NzRiMTAzNy4uYjc5NTA0OWYwYzgzYWQ4ODYw
MjI0MzQ4MzZjZDc3MjJlZjBjZjU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5o
CkBAIC00Nyw4ICs0Nyw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTa0JpdG1hcCBjcmVhdGVS
ZXNpemVkTGF6eURlY29kaW5nQml0bWFwKGNvbnN0IFNrQml0bWFwJiwgY29uc3QgU2tJU2l6ZSYg
c2NhbGVkU2l6ZSwgY29uc3QgU2tJUmVjdCYgc2NhbGVkU3Vic2V0KTsKIAotICAgIHN0YXRpYyB2
b2lkIHNldEVuYWJsZWQoYm9vbCk7Ci0KICAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBj
b25zdDsKIAogICAgIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QgaW5kZXgp
OwpAQCAtODEsOCArNzksNiBAQCBwcml2YXRlOgogCiAgICAgSW1hZ2VGcmFtZSBtX2xhenlEZWNv
ZGVkRnJhbWU7CiAgICAgUmVmUHRyPEltYWdlRnJhbWVHZW5lcmF0b3I+IG1fZnJhbWVHZW5lcmF0
b3I7Ci0KLSAgICBzdGF0aWMgYm9vbCBzX2VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZURlY29kaW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSW1hZ2VEZWNvZGluZ1N0b3JlLmNwcAppbmRleCA1MWQ2YjY1MGJlM2Ew
ZTdmMmUxZDg3MGRmMTM3MDQ1MTBhNjljMzJlLi40NDllNDUyNTRlODk1YzAzMzI2YjRkNTdhMDVi
YmQxMTE5YmIzOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZURlY29kaW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlRGVjb2RpbmdTdG9yZS5jcHAKQEAgLTI2LDIy
ICsyNiwyMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkltYWdlRGVjb2RpbmdT
dG9yZS5oIgogCi0jaW5jbHVkZSAiSW1hZ2VGcmFtZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIlNj
YWxlZEltYWdlRnJhZ21lbnQuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKworI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNl
IHsKIAotSW1hZ2VEZWNvZGluZ1N0b3JlKiBzX2luc3RhbmNlID0gMDsKK0ltYWdlRGVjb2RpbmdT
dG9yZSogc19pbnN0YW5jZU9uTWFpblRocmVhZCA9IDA7CiAKLXN0YXRpYyB2b2lkIHNldEluc3Rh
bmNlKEltYWdlRGVjb2RpbmdTdG9yZSogaW1hZ2VEZWNvZGluZ1N0b3JlKQorc3RhdGljIHZvaWQg
c2V0SW5zdGFuY2VPbk1haW5UaHJlYWQoSW1hZ2VEZWNvZGluZ1N0b3JlKiBpbWFnZURlY29kaW5n
U3RvcmUpCiB7Ci0gICAgZGVsZXRlIHNfaW5zdGFuY2U7Ci0gICAgc19pbnN0YW5jZSA9IGltYWdl
RGVjb2RpbmdTdG9yZTsKKyAgICBkZWxldGUgc19pbnN0YW5jZU9uTWFpblRocmVhZDsKKyAgICBz
X2luc3RhbmNlT25NYWluVGhyZWFkID0gaW1hZ2VEZWNvZGluZ1N0b3JlOwogfQotCiB9IC8vIG5h
bWVzcGFjZQogCiBJbWFnZURlY29kaW5nU3RvcmU6OkltYWdlRGVjb2RpbmdTdG9yZSgpCkBAIC01
Miw5NCArNTEsNDYgQEAgSW1hZ2VEZWNvZGluZ1N0b3JlOjp+SW1hZ2VEZWNvZGluZ1N0b3JlKCkK
IHsKIH0KIAotSW1hZ2VEZWNvZGluZ1N0b3JlKiBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNl
KCkKK0ltYWdlRGVjb2RpbmdTdG9yZSogSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZU9uTWFp
blRocmVhZCgpCiB7Ci0gICAgcmV0dXJuIHNfaW5zdGFuY2U7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICByZXR1cm4gc19pbnN0YW5jZU9uTWFpblRocmVhZDsKIH0KIAotdm9pZCBJ
bWFnZURlY29kaW5nU3RvcmU6OmluaXRpYWxpemVPbmNlKCkKK3ZvaWQgSW1hZ2VEZWNvZGluZ1N0
b3JlOjppbml0aWFsaXplT25NYWluVGhyZWFkKCkKIHsKLSAgICBzZXRJbnN0YW5jZShJbWFnZURl
Y29kaW5nU3RvcmU6OmNyZWF0ZSgpLmxlYWtQdHIoKSk7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBzZXRJbnN0YW5jZU9uTWFpblRocmVhZChJbWFnZURlY29kaW5nU3RvcmU6OmNy
ZWF0ZSgpLmxlYWtQdHIoKSk7CiB9CiAKIHZvaWQgSW1hZ2VEZWNvZGluZ1N0b3JlOjpzaHV0ZG93
bigpCiB7Ci0gICAgc2V0SW5zdGFuY2UoMCk7Ci19Ci0KLWNvbnN0IFNjYWxlZEltYWdlRnJhZ21l
bnQqIEltYWdlRGVjb2RpbmdTdG9yZTo6bG9ja0NvbXBsZXRlQ2FjaGUoY29uc3QgSW1hZ2VGcmFt
ZUdlbmVyYXRvciogZ2VuZXJhdG9yLCBjb25zdCBTa0lTaXplJiBzY2FsZWRTaXplKQotewotICAg
IENhY2hlRW50cnkqIGNhY2hlRW50cnkgPSAwOwotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9jayhtX211dGV4KTsKLSAgICAgICAgQ2FjaGVNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2NhY2hl
TWFwLmZpbmQoc3RkOjptYWtlX3BhaXIoZ2VuZXJhdG9yLCBzY2FsZWRTaXplKSk7Ci0gICAgICAg
IGlmIChpdGVyID09IG1fY2FjaGVNYXAuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgY2FjaGVFbnRyeSA9IGl0ZXItPnZhbHVlOwotICAgICAgICBpZiAoIWNhY2hlRW50cnkt
PmNhY2hlZEltYWdlLT5pc0NvbXBsZXRlKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAg
ICAgICAvLyBJbmNyZW1lbnQgdXNlIGNvdW50IHN1Y2ggdGhhdCBpdCBkb2Vzbid0IGdldCBldmlj
dGVkLgotICAgICAgICArK2NhY2hlRW50cnktPnVzZUNvdW50OwotICAgIH0KLSAgICBjYWNoZUVu
dHJ5LT5jYWNoZWRJbWFnZS0+Yml0bWFwKCkubG9ja1BpeGVscygpOwotICAgIHJldHVybiBjYWNo
ZUVudHJ5LT5jYWNoZWRJbWFnZS5nZXQoKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHNldEluc3RhbmNlT25NYWluVGhyZWFkKDApOwogfQogCi1jb25zdCBTY2FsZWRJbWFnZUZy
YWdtZW50KiBJbWFnZURlY29kaW5nU3RvcmU6OmxvY2tJbmNvbXBsZXRlQ2FjaGUoY29uc3QgSW1h
Z2VGcmFtZUdlbmVyYXRvciogZ2VuZXJhdG9yLCBjb25zdCBTa0lTaXplJiBzY2FsZWRTaXplKQor
Ym9vbCBJbWFnZURlY29kaW5nU3RvcmU6OmNhbGxlZE9uVmFsaWRUaHJlYWQoKSBjb25zdAogewot
ICAgIC8vIFRPRE86IEltcGxlbWVudC4KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdGhpcyA9
PSBpbnN0YW5jZU9uTWFpblRocmVhZCgpICYmIGlzTWFpblRocmVhZCgpOwogfQogCi12b2lkIElt
YWdlRGVjb2RpbmdTdG9yZTo6dW5sb2NrQ2FjaGUoY29uc3QgSW1hZ2VGcmFtZUdlbmVyYXRvciog
Z2VuZXJhdG9yLCBjb25zdCBTY2FsZWRJbWFnZUZyYWdtZW50KiBjYWNoZWRJbWFnZSkKK1NjYWxl
ZEltYWdlRnJhZ21lbnQqIEltYWdlRGVjb2RpbmdTdG9yZTo6bG9va3VwRnJhbWVDYWNoZShpbnQg
aW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSkgY29uc3QKIHsKLSAgICBjYWNoZWRJ
bWFnZS0+Yml0bWFwKCkudW5sb2NrUGl4ZWxzKCk7Ci0gICAgaWYgKCFjYWNoZWRJbWFnZS0+aXND
b21wbGV0ZSgpKSB7Ci0gICAgICAgIC8vIERlbGV0ZSB0aGUgaW1hZ2UgaWYgaXQgaXMgaW5jb21w
bGV0ZS4gSXQgd2FzIG5ldmVyIHN0b3JlZCBpbiBjYWNoZS4KLSAgICAgICAgZGVsZXRlIGNhY2hl
ZEltYWdlOwotICAgICAgICByZXR1cm47CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Zy
YW1lQ2FjaGUuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fZnJhbWVDYWNoZVtpXS0+aXNF
cXVhbChpbWFnZUlkLCBzY2FsZWRTaXplKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lQ2Fj
aGVbaV0uZ2V0KCk7CiAgICAgfQotCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKLSAg
ICBDYWNoZU1hcDo6aXRlcmF0b3IgaXRlciA9IG1fY2FjaGVNYXAuZmluZChzdGQ6Om1ha2VfcGFp
cihnZW5lcmF0b3IsIGNhY2hlZEltYWdlLT5zY2FsZWRTaXplKCkpKTsKLSAgICBBU1NFUlQoaXRl
ciAhPSBtX2NhY2hlTWFwLmVuZCgpKTsKLQotICAgIENhY2hlRW50cnkqIGNhY2hlRW50cnkgPSBp
dGVyLT52YWx1ZTsKLSAgICAtLWNhY2hlRW50cnktPnVzZUNvdW50OwotICAgIEFTU0VSVChjYWNo
ZUVudHJ5LT51c2VDb3VudCA+PSAwKTsKKyAgICByZXR1cm4gMDsKIH0KIAotY29uc3QgU2NhbGVk
SW1hZ2VGcmFnbWVudCogSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnNlcnRBbmRMb2NrQ2FjaGUoY29u
c3QgSW1hZ2VGcmFtZUdlbmVyYXRvciogZ2VuZXJhdG9yLCBQYXNzT3duUHRyPFNjYWxlZEltYWdl
RnJhZ21lbnQ+IGltYWdlKQordm9pZCBJbWFnZURlY29kaW5nU3RvcmU6OmRlbGV0ZUZyYW1lQ2Fj
aGUoaW50IGltYWdlSWQpCiB7Ci0gICAgLy8gUHJ1bmUgb2xkIGNhY2hlIGVudHJpZXMgdG8gZ2l2
ZSBzcGFjZSBmb3IgdGhlIG5ldyBvbmUuCi0gICAgcHJ1bmUoKTsKLQotICAgIC8vIExvY2sgdGhl
IHVuZGVybHlpbmcgU2tCaXRtYXAgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHB1cmdlZC4KLSAg
ICBpbWFnZS0+Yml0bWFwKCkubG9ja1BpeGVscygpOwotCi0gICAgaWYgKCFpbWFnZS0+aXNDb21w
bGV0ZSgpKSB7Ci0gICAgICAgIC8vIEluY29tcGxldGUgaW1hZ2UgaXMgbm90IHN0b3JlZCBpbiB0
aGUgY2FjaGUgYW5kIGRlbGV0ZWQgYWZ0ZXIgdXNlLgotICAgICAgICAvLyBTZWUgdW5sb2NrQ2Fj
aGUoKS4KLSAgICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGFsbG93IGluY29tcGxldGUgaW1hZ2Vz
IHRvIGJlIHN0b3JlZCB0b2dldGhlciB3aXRoCi0gICAgICAgIC8vIHRoZSBjb3JyZXNwb25kaW5n
IEltYWdlRGVjb2Rlci4KLSAgICAgICAgcmV0dXJuIGltYWdlLmxlYWtQdHIoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fZnJhbWVDYWNoZS5zaXplKCk7ICsraSkgeworICAgICAgICBp
ZiAobV9mcmFtZUNhY2hlW2ldLT5pc0VxdWFsKGltYWdlSWQpKSB7CisgICAgICAgICAgICBtX2Zy
YW1lQ2FjaGUucmVtb3ZlKGkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAg
fQotCi0gICAgU2NhbGVkSW1hZ2VGcmFnbWVudCogY2FjaGVkSW1hZ2UgPSBpbWFnZS5nZXQoKTsK
LSAgICBPd25QdHI8Q2FjaGVFbnRyeT4gbmV3Q2FjaGVFbnRyeSA9IENhY2hlRW50cnk6OmNyZWF0
ZUFuZFVzZShpbWFnZSk7Ci0KLSAgICBDYWNoZUlkZW50aWZpZXIga2V5ID0gc3RkOjptYWtlX3Bh
aXIoZ2VuZXJhdG9yLCBjYWNoZWRJbWFnZS0+c2NhbGVkU2l6ZSgpKTsKLSAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOwotICAgIEFTU0VSVCghbV9jYWNoZU1hcC5jb250YWlucyhrZXkpKTsK
LSAgICBtX2NhY2hlTWFwLmFkZChrZXksIG5ld0NhY2hlRW50cnkuZ2V0KCkpOwotICAgIG1fY2Fj
aGVFbnRyaWVzLmFwcGVuZChuZXdDYWNoZUVudHJ5LnJlbGVhc2UoKSk7Ci0gICAgcmV0dXJuIGNh
Y2hlZEltYWdlOwotfQotCi12b2lkIEltYWdlRGVjb2RpbmdTdG9yZTo6cHJ1bmUoKQotewotICAg
IC8vIFRPRE86IEltcGxlbWVudC4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VEZWNv
ZGluZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
bWFnZURlY29kaW5nU3RvcmUuaAppbmRleCAwYWVhMmU5Njk5ZTc4NzA3MTE0YWU2ZjY2NGM2Y2M5
MTE2NzczYTRlLi5hNmZhNTYxOTRmZTE1NTMxM2UxYjFiYjI4ZjExMTIyNmIyMDI3ZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZURl
Y29kaW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZURlY29kaW5nU3RvcmUuaApAQCAtMjYsNzMgKzI2LDQwIEBACiAjaWZuZGVmIElt
YWdlRGVjb2RpbmdTdG9yZV9oCiAjZGVmaW5lIEltYWdlRGVjb2RpbmdTdG9yZV9oCiAKLSNpbmNs
dWRlICJTY2FsZWRJbWFnZUZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU2tUeXBlcy5oIgogI2luY2x1
ZGUgIlNrU2l6ZS5oIgotI2luY2x1ZGUgIlNrU2l6ZUhhc2guaCIKIAogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlRGVjb2RlcjsKIGNsYXNzIEltYWdlRnJhbWVHZW5lcmF0
b3I7CitjbGFzcyBTY2FsZWRJbWFnZUZyYWdtZW50OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCisv
LyBUaGlzIGNsYXNzIGNhbiBvbmx5IGJlIGluc3RhbnRpYXRlZCBvbiBtYWluIHRocmVhZC4gVGhl
cmUgd2lsbCBiZSBhbgorLy8gaW5zdGFuY2Ugb24gaW1wbCB0aHJlYWQgaW4gdGhlIGZ1dHVyZSBi
dXQgdGhhdCBwYXJ0IG9mIGltcGxlbWVudGF0aW9uCisvLyBpcyBpbmNvbXBsZXRlLiBTZWUgYnVn
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQyNDAKKy8vIGZvciBk
ZXRhaWxzLgogY2xhc3MgSW1hZ2VEZWNvZGluZ1N0b3JlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxJbWFnZURlY29kaW5nU3RvcmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRy
KG5ldyBJbWFnZURlY29kaW5nU3RvcmUpOyB9CiAgICAgfkltYWdlRGVjb2RpbmdTdG9yZSgpOwog
Ci0gICAgc3RhdGljIEltYWdlRGVjb2RpbmdTdG9yZSogaW5zdGFuY2UoKTsKLSAgICBzdGF0aWMg
dm9pZCBpbml0aWFsaXplT25jZSgpOworICAgIHN0YXRpYyBJbWFnZURlY29kaW5nU3RvcmUqIGlu
c3RhbmNlT25NYWluVGhyZWFkKCk7CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU9uTWFpblRo
cmVhZCgpOwogICAgIHN0YXRpYyB2b2lkIHNodXRkb3duKCk7CiAKLSAgICBjb25zdCBTY2FsZWRJ
bWFnZUZyYWdtZW50KiBsb2NrQ29tcGxldGVDYWNoZShjb25zdCBJbWFnZUZyYW1lR2VuZXJhdG9y
KiwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSk7Ci0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFn
bWVudCogbG9ja0luY29tcGxldGVDYWNoZShjb25zdCBJbWFnZUZyYW1lR2VuZXJhdG9yKiwgY29u
c3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSk7Ci0gICAgdm9pZCB1bmxvY2tDYWNoZShjb25zdCBJbWFn
ZUZyYW1lR2VuZXJhdG9yKiwgY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCopOwotICAgIGNvbnN0
IFNjYWxlZEltYWdlRnJhZ21lbnQqIGluc2VydEFuZExvY2tDYWNoZShjb25zdCBJbWFnZUZyYW1l
R2VuZXJhdG9yKiwgUGFzc093blB0cjxTY2FsZWRJbWFnZUZyYWdtZW50Pik7Ci0KIHByaXZhdGU6
Ci0gICAgc3RydWN0IENhY2hlRW50cnkgewotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxDYWNo
ZUVudHJ5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgQ2FjaGVFbnRyeSgpKTsgfQot
ICAgICAgICBzdGF0aWMgUGFzc093blB0cjxDYWNoZUVudHJ5PiBjcmVhdGVBbmRVc2UoUGFzc093
blB0cjxTY2FsZWRJbWFnZUZyYWdtZW50PiBpbWFnZSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IENh
Y2hlRW50cnkoaW1hZ2UsIDEpKTsgfQotCi0gICAgICAgIENhY2hlRW50cnkoKQotICAgICAgICAg
ICAgOiB1c2VDb3VudCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBDYWNoZUVu
dHJ5KFBhc3NPd25QdHI8U2NhbGVkSW1hZ2VGcmFnbWVudD4gaW1hZ2UsIGludCBjb3VudCkKLSAg
ICAgICAgICAgIDogY2FjaGVkSW1hZ2UoaW1hZ2UpCi0gICAgICAgICAgICAsIHVzZUNvdW50KGNv
dW50KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICB+Q2FjaGVFbnRyeSgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEFTU0VSVCghdXNlQ291bnQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgT3duUHRyPFNjYWxlZEltYWdlRnJhZ21lbnQ+IGNhY2hlZEltYWdlOwotICAgICAgICBpbnQg
dXNlQ291bnQ7Ci0gICAgfTsKLQogICAgIEltYWdlRGVjb2RpbmdTdG9yZSgpOwotICAgIHZvaWQg
cHJ1bmUoKTsKLQotICAgIFZlY3RvcjxPd25QdHI8Q2FjaGVFbnRyeT4gPiBtX2NhY2hlRW50cmll
czsKLQotICAgIHR5cGVkZWYgc3RkOjpwYWlyPGNvbnN0IEltYWdlRnJhbWVHZW5lcmF0b3IqLCBT
a0lTaXplPiBDYWNoZUlkZW50aWZpZXI7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPENhY2hlSWRlbnRp
ZmllciwgQ2FjaGVFbnRyeSo+IENhY2hlTWFwOwotICAgIENhY2hlTWFwIG1fY2FjaGVNYXA7Cisg
ICAgYm9vbCBjYWxsZWRPblZhbGlkVGhyZWFkKCkgY29uc3Q7CisgICAgU2NhbGVkSW1hZ2VGcmFn
bWVudCogbG9va3VwRnJhbWVDYWNoZShpbnQgaW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVk
U2l6ZSkgY29uc3Q7CisgICAgdm9pZCBkZWxldGVGcmFtZUNhY2hlKGludCBpbWFnZUlkKTsKIAot
ICAgIC8vIFByb3RlY3QgY29uY3VycmVudCBhY2Nlc3MgdG8gYWxsIGluc3RhbmNlcyBvZiBDYWNo
ZUVudHJ5IHN0b3JlZCBpbiBtX2NhY2hlRW50cmllcyBhbmQKLSAgICAvLyBtX2NhY2hlTWFwIGFz
IHdlbGwgYXMgdGhlIGNvbnRhaW5lcnMuCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBWZWN0b3I8
T3duUHRyPFNjYWxlZEltYWdlRnJhZ21lbnQ+ID4gbV9mcmFtZUNhY2hlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSW1hZ2VGcmFtZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmNwcAppbmRleCAy
MjBhNTdkNDVkYTEyMzdlZmZiNTg4YWE0ZTI3M2M1YTdhMzIzNjU0Li5mZTRlNGJmYmVkY2NmNGQ0
NjI5MDllZGIyZmMxNTI1MjE1ODdlYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9y
LmNwcApAQCAtMjgsMzQgKzI4LDIwIEBACiAjaW5jbHVkZSAiSW1hZ2VGcmFtZUdlbmVyYXRvci5o
IgogCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiSW1hZ2VEZWNvZGluZ1N0
b3JlLmgiCi0jaW5jbHVkZSAiU2NhbGVkSW1hZ2VGcmFnbWVudC5oIgogI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSAic2tpYS9leHQvaW1hZ2Vfb3BlcmF0aW9ucy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci0KLXNraWE6OkltYWdlT3BlcmF0aW9u
czo6UmVzaXplTWV0aG9kIHJlc2l6ZU1ldGhvZCgpCi17Ci0gICAgcmV0dXJuIHNraWE6OkltYWdl
T3BlcmF0aW9uczo6UkVTSVpFX0xBTkNaT1MzOwotfQotCi19IC8vIG5hbWVzcGFjZQotCi1JbWFn
ZUZyYW1lR2VuZXJhdG9yOjpJbWFnZUZyYW1lR2VuZXJhdG9yKGNvbnN0IFNrSVNpemUmIGZ1bGxT
aXplLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
Ci0gICAgOiBtX2Z1bGxTaXplKGZ1bGxTaXplKQotICAgICwgbV9hbGxEYXRhUmVjZWl2ZWQoZmFs
c2UpCitJbWFnZUZyYW1lR2VuZXJhdG9yOjpJbWFnZUZyYW1lR2VuZXJhdG9yKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKKyAgICA6IG1fYWxsRGF0
YVJlY2VpdmVkKGZhbHNlKQogewogICAgIHNldERhdGEoZGF0YSwgYWxsRGF0YVJlY2VpdmVkKTsK
IH0KIAogSW1hZ2VGcmFtZUdlbmVyYXRvcjo6fkltYWdlRnJhbWVHZW5lcmF0b3IoKQogewotICAg
IC8vIFRPRE86IENhbGwgSW1hZ2VEZWNvZGluZ1N0b3JlIHRvIHJlbW92ZSBhbGwgY2FjaGUgZW50
cmllcyBpbmRleGVkCi0gICAgLy8gYnkgdGhpcyBvYmplY3QuCiB9CiAKIHZvaWQgSW1hZ2VGcmFt
ZUdlbmVyYXRvcjo6c2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpCkBAIC02Myw2NCArNDksMTcgQEAgdm9pZCBJbWFnZUZyYW1lR2VuZXJh
dG9yOjpzZXREYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFS
ZWMKICAgICAvLyBGSVhNRTogRG9pbmcgYSBmdWxsIGNvcHkgaXMgZXhwZW5zaXZlLCBpbnN0ZWFk
IGNvcHkgb25seSBuZXcgZGF0YS4KICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhQ29weSA9
IGRhdGEtPmNvcHkoKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2sobV9kYXRhTXV0ZXgpOworICAg
IE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CiAgICAgbV9kYXRhID0gZGF0YUNvcHk7CiAgICAg
bV9hbGxEYXRhUmVjZWl2ZWQgPSBhbGxEYXRhUmVjZWl2ZWQ7CiB9CiAKLWNvbnN0IFNjYWxlZElt
YWdlRnJhZ21lbnQqIEltYWdlRnJhbWVHZW5lcmF0b3I6OmRlY29kZUFuZFNjYWxlKGNvbnN0IFNr
SVNpemUmIHNjYWxlZFNpemUpCi17Ci0gICAgLy8gUHJldmVudHMgY29uY3VycmVudCBkZWNvZGUg
b3Igc2NhbGUgb3BlcmF0aW9ucyBvbiB0aGUgc2FtZSBpbWFnZSBkYXRhLgotICAgIC8vIE11bHRp
cGxlIExhenlEZWNvZGluZ1BpeGVsUmVmcyBjYW4gY2FsbCB0aGlzIG1ldGhvZCBhdCB0aGUgc2Ft
ZSB0aW1lLgotICAgIE11dGV4TG9ja2VyIGxvY2sobV9kZWNvZGVNdXRleCk7Ci0gICAgY29uc3Qg
U2NhbGVkSW1hZ2VGcmFnbWVudCogY2FjaGVkSW1hZ2UgPSAwOwotCi0gICAgY2FjaGVkSW1hZ2Ug
PSB0cnlUb0xvY2tDYWNoZShzY2FsZWRTaXplKTsKLSAgICBpZiAoY2FjaGVkSW1hZ2UpCi0gICAg
ICAgIHJldHVybiBjYWNoZWRJbWFnZTsKLQotICAgIGNhY2hlZEltYWdlID0gdHJ5VG9TY2FsZSgw
LCBzY2FsZWRTaXplKTsKLSAgICBpZiAoY2FjaGVkSW1hZ2UpCi0gICAgICAgIHJldHVybiBjYWNo
ZWRJbWFnZTsKLQotICAgIGNhY2hlZEltYWdlID0gdHJ5VG9EZWNvZGVBbmRTY2FsZShzY2FsZWRT
aXplKTsKLSAgICBpZiAoY2FjaGVkSW1hZ2UpCi0gICAgICAgIHJldHVybiBjYWNoZWRJbWFnZTsK
LSAgICByZXR1cm4gMDsKLX0KLQotY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCogSW1hZ2VGcmFt
ZUdlbmVyYXRvcjo6dHJ5VG9Mb2NrQ2FjaGUoY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSkKLXsK
LSAgICByZXR1cm4gSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgpLT5sb2NrQ29tcGxldGVD
YWNoZSh0aGlzLCBzY2FsZWRTaXplKTsKLX0KLQotY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCog
SW1hZ2VGcmFtZUdlbmVyYXRvcjo6dHJ5VG9TY2FsZShjb25zdCBTY2FsZWRJbWFnZUZyYWdtZW50
KiBmdWxsU2l6ZUltYWdlLCBjb25zdCBTa0lTaXplJiBzY2FsZWRTaXplKQotewotICAgIC8vIElm
IHRoZSByZXF1ZXN0ZWQgc2NhbGVkIHNpemUgaXMgdGhlIHNhbWUgYXMgdGhlIGZ1bGwgc2l6ZSB0
aGVuIGV4aXQKLSAgICAvLyBlYXJseS4gVGhpcyBzYXZlcyBhIGNhY2hlIGxvb2t1cC4KLSAgICBp
ZiAoc2NhbGVkU2l6ZSA9PSBtX2Z1bGxTaXplKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlm
ICghZnVsbFNpemVJbWFnZSkKLSAgICAgICAgZnVsbFNpemVJbWFnZSA9IEltYWdlRGVjb2RpbmdT
dG9yZTo6aW5zdGFuY2UoKS0+bG9ja0NvbXBsZXRlQ2FjaGUodGhpcywgbV9mdWxsU2l6ZSk7Ci0K
LSAgICBpZiAoIWZ1bGxTaXplSW1hZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgU2tCaXRt
YXAgc2NhbGVkQml0bWFwID0gc2tpYTo6SW1hZ2VPcGVyYXRpb25zOjpSZXNpemUoCi0gICAgICAg
IGZ1bGxTaXplSW1hZ2UtPmJpdG1hcCgpLCByZXNpemVNZXRob2QoKSwgc2NhbGVkU2l6ZS53aWR0
aCgpLCBzY2FsZWRTaXplLmhlaWdodCgpKTsKLSAgICBPd25QdHI8U2NhbGVkSW1hZ2VGcmFnbWVu
dD4gc2NhbGVkSW1hZ2UgPSBTY2FsZWRJbWFnZUZyYWdtZW50OjpjcmVhdGUoc2NhbGVkU2l6ZSwg
c2NhbGVkQml0bWFwLCBmdWxsU2l6ZUltYWdlLT5pc0NvbXBsZXRlKCkpOwotCi0gICAgSW1hZ2VE
ZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgpLT51bmxvY2tDYWNoZSh0aGlzLCBmdWxsU2l6ZUltYWdl
KTsKLSAgICByZXR1cm4gSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgpLT5pbnNlcnRBbmRM
b2NrQ2FjaGUodGhpcywgc2NhbGVkSW1hZ2UucmVsZWFzZSgpKTsKLX0KLQotY29uc3QgU2NhbGVk
SW1hZ2VGcmFnbWVudCogSW1hZ2VGcmFtZUdlbmVyYXRvcjo6dHJ5VG9EZWNvZGVBbmRTY2FsZShj
b25zdCBTa0lTaXplJiBzY2FsZWRTaXplKQorU2tCaXRtYXAgSW1hZ2VGcmFtZUdlbmVyYXRvcjo6
ZGVjb2RlQW5kU2NhbGUoY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSwgY29uc3QgU2tJUmVjdCYg
c2NhbGVkU3Vic2V0KQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7CiAgICAgYm9v
bCBhbGxEYXRhUmVjZWl2ZWQgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9kYXRhTXV0ZXgpOworICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwogCiAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gYSBzaGFsbG93IGNvcHkgaW5zdGVhZC4gTm93
IHdlJ3JlIHJlc3RyaWN0ZWQgYnkgdGhlIEFQSSBvZiBTaGFyZWRCdWZmZXIuCiAgICAgICAgIGRh
dGEgPSBtX2RhdGEtPmNvcHkoKTsKQEAgLTEyOCwyNiArNjcsMjIgQEAgY29uc3QgU2NhbGVkSW1h
Z2VGcmFnbWVudCogSW1hZ2VGcmFtZUdlbmVyYXRvcjo6dHJ5VG9EZWNvZGVBbmRTY2FsZShjb25z
dCBTa0lTaXoKICAgICB9CiAKICAgICBPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0
UHRyKEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpkYXRhLmdldCgpLCBJbWFnZVNvdXJjZTo6QWxwaGFQ
cmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKSkp
OwotICAgIGlmICghZGVjb2RlciAmJiBtX2ltYWdlRGVjb2RlckZhY3RvcnkpCi0gICAgICAgIGRl
Y29kZXIgPSBtX2ltYWdlRGVjb2RlckZhY3RvcnktPmNyZWF0ZSgpOwogICAgIGlmICghZGVjb2Rl
cikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBTa0JpdG1hcCgpOwogCiAgICAg
ZGVjb2Rlci0+c2V0RGF0YShkYXRhLmdldCgpLCBhbGxEYXRhUmVjZWl2ZWQpOwogICAgIEltYWdl
RnJhbWUqIGZyYW1lID0gZGVjb2Rlci0+ZnJhbWVCdWZmZXJBdEluZGV4KDApOwotICAgIGlmICgh
ZnJhbWUgfHwgZnJhbWUtPnN0YXR1cygpID09IEltYWdlRnJhbWU6OkZyYW1lRW1wdHkpCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgYm9vbCBpc0NvbXBsZXRlID0gZnJhbWUtPnN0YXR1cygpID09
IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGU7Ci0gICAgU2tCaXRtYXAgZnVsbFNpemVCaXRtYXAg
PSBmcmFtZS0+Z2V0U2tCaXRtYXAoKTsKLSAgICBBU1NFUlQoZnVsbFNpemVCaXRtYXAud2lkdGgo
KSA9PSBtX2Z1bGxTaXplLndpZHRoKCkgJiYgZnVsbFNpemVCaXRtYXAuaGVpZ2h0KCkgPT0gbV9m
dWxsU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIFNrQml0
bWFwKCk7CiAKLSAgICBjb25zdCBTY2FsZWRJbWFnZUZyYWdtZW50KiBmdWxsU2l6ZUltYWdlID0g
SW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgpLT5pbnNlcnRBbmRMb2NrQ2FjaGUoCi0gICAg
ICAgIHRoaXMsIFNjYWxlZEltYWdlRnJhZ21lbnQ6OmNyZWF0ZShtX2Z1bGxTaXplLCBmdWxsU2l6
ZUJpdG1hcCwgaXNDb21wbGV0ZSkpOworICAgIFNrQml0bWFwIGJpdG1hcCA9IGZyYW1lLT5nZXRT
a0JpdG1hcCgpOworICAgIFNrSVNpemUgYml0bWFwU2l6ZSA9IFNrSVNpemU6Ok1ha2UoYml0bWFw
LndpZHRoKCksIGJpdG1hcC5oZWlnaHQoKSk7CisgICAgaWYgKGJpdG1hcFNpemUgIT0gc2NhbGVk
U2l6ZSkKKyAgICAgICAgYml0bWFwID0gc2tpYTo6SW1hZ2VPcGVyYXRpb25zOjpSZXNpemUoYml0
bWFwLCBza2lhOjpJbWFnZU9wZXJhdGlvbnM6OlJFU0laRV9MQU5DWk9TMywgc2NhbGVkU2l6ZS53
aWR0aCgpLCBzY2FsZWRTaXplLmhlaWdodCgpKTsKIAotICAgIGlmIChtX2Z1bGxTaXplID09IHNj
YWxlZFNpemUpCi0gICAgICAgIHJldHVybiBmdWxsU2l6ZUltYWdlOwotICAgIHJldHVybiB0cnlU
b1NjYWxlKGZ1bGxTaXplSW1hZ2UsIHNjYWxlZFNpemUpOworICAgIFNrQml0bWFwIGJpdG1hcFN1
YnNldDsKKyAgICBiaXRtYXAuZXh0cmFjdFN1YnNldCgmYml0bWFwU3Vic2V0LCBzY2FsZWRTdWJz
ZXQpOworICAgIHJldHVybiBiaXRtYXBTdWJzZXQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlRnJhbWVHZW5lcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuaAppbmRleCAxMzNlMGEyNDVhYzY4ZGU4MzMz
OWFiNmYxNjY3MzQzYWVlMjNjNmY0Li42ZGY1YjIzY2VkMTRhZTUwOTU1YWY2M2U4NzhlM2JhN2Rh
NjU0ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VGcmFtZUdlbmVyYXRvci5oCkBAIC0zOCw0OCArMzgsMjYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJbWFnZURlY29kZXI7Ci1jbGFzcyBT
Y2FsZWRJbWFnZUZyYWdtZW50OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCi1jbGFzcyBJbWFnZURl
Y29kZXJGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8SW1hZ2VEZWNv
ZGVyPiBjcmVhdGUoKSA9IDA7Ci19OwotCiBjbGFzcyBJbWFnZUZyYW1lR2VuZXJhdG9yIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEltYWdlRnJhbWVHZW5lcmF0b3I+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZUZyYW1lR2VuZXJhdG9yPiBjcmVhdGUoY29uc3Qg
U2tJU2l6ZSYgZnVsbFNpemUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFs
bERhdGFSZWNlaXZlZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZUZyYW1lR2VuZXJhdG9y
PiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZUZyYW1lR2VuZXJh
dG9yKGZ1bGxTaXplLCBkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbWFnZUZyYW1lR2VuZXJhdG9yKGRhdGEsIGFsbERhdGFSZWNlaXZlZCkpOwog
ICAgIH0KIAotICAgIEltYWdlRnJhbWVHZW5lcmF0b3IoY29uc3QgU2tJU2l6ZSYgZnVsbFNpemUs
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworICAgIElt
YWdlRnJhbWVHZW5lcmF0b3IoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBib29sIGFsbERhdGFS
ZWNlaXZlZCk7CiAgICAgfkltYWdlRnJhbWVHZW5lcmF0b3IoKTsKIAotICAgIGNvbnN0IFNjYWxl
ZEltYWdlRnJhZ21lbnQqIGRlY29kZUFuZFNjYWxlKGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUp
OworICAgIFNrQml0bWFwIGRlY29kZUFuZFNjYWxlKGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUs
IGNvbnN0IFNrSVJlY3QmIHNjYWxlZFN1YnNldCk7CiAKICAgICB2b2lkIHNldERhdGEoUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+LCBib29sIGFsbERhdGFSZWNlaXZlZCk7CiAKLSAgICB2b2lkIHNl
dEltYWdlRGVjb2RlckZhY3RvcnlGb3JUZXN0aW5nKFBhc3NPd25QdHI8SW1hZ2VEZWNvZGVyRmFj
dG9yeT4gZmFjdG9yeSkgeyBtX2ltYWdlRGVjb2RlckZhY3RvcnkgPSBmYWN0b3J5OyB9Ci0KIHBy
aXZhdGU6Ci0gICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHdoaWxlIG1fZGVjb2RlTXV0
ZXggaXMgbG9ja2VkLgotICAgIGNvbnN0IFNjYWxlZEltYWdlRnJhZ21lbnQqIHRyeVRvTG9ja0Nh
Y2hlKGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUpOwotICAgIGNvbnN0IFNjYWxlZEltYWdlRnJh
Z21lbnQqIHRyeVRvU2NhbGUoY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCogZnVsbFNpemVJbWFn
ZSwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSk7Ci0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFn
bWVudCogdHJ5VG9EZWNvZGVBbmRTY2FsZShjb25zdCBTa0lTaXplJiBzY2FsZWRTaXplKTsKLQot
ICAgIFNrSVNpemUgbV9mdWxsU2l6ZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7
CiAgICAgYm9vbCBtX2FsbERhdGFSZWNlaXZlZDsKLQotICAgIE93blB0cjxJbWFnZURlY29kZXJG
YWN0b3J5PiBtX2ltYWdlRGVjb2RlckZhY3Rvcnk7Ci0KLSAgICAvLyBQcmV2ZW50cyBtdWx0aXBs
ZSBkZWNvZGUgb3BlcmF0aW9ucyBvbiB0aGUgc2FtZSBkYXRhLgotICAgIE11dGV4IG1fZGVjb2Rl
TXV0ZXg7Ci0KLSAgICAvLyBQcmV2ZW50cyBjb25jdXJyZW50IGFjY2VzcyB0byBtX2RhdGEuCi0g
ICAgTXV0ZXggbV9kYXRhTXV0ZXg7CisgICAgTXV0ZXggbV9tdXRleDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xhenlEZWNvZGluZ1BpeGVsUmVmLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xhenlEZWNvZGluZ1BpeGVsUmVmLmNwcAppbmRleCA1
NTUyNjYzNjJhNjUyOGNkNGM1MzM4MjJmMWY2NTg2YmJmZDg0MzUzLi4wYTVkNWEzOGFmNGU2OTdj
ZTk3MDdhZmI2ZGRjMDFhZWU0NzA5MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQaXhlbFJlZi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF6eURlY29kaW5nUGl4ZWxS
ZWYuY3BwCkBAIC0zOCw3ICszOCw2IEBAIExhenlEZWNvZGluZ1BpeGVsUmVmOjpMYXp5RGVjb2Rp
bmdQaXhlbFJlZihQYXNzUmVmUHRyPEltYWdlRnJhbWVHZW5lcmF0b3I+IGZyYW1lCiAgICAgLCBt
X2ZyYW1lR2VuZXJhdG9yKGZyYW1lR2VuZXJhdG9yKQogICAgICwgbV9zY2FsZWRTaXplKHNjYWxl
ZFNpemUpCiAgICAgLCBtX3NjYWxlZFN1YnNldChzY2FsZWRTdWJzZXQpCi0gICAgLCBtX2xvY2tl
ZENhY2hlZEltYWdlKDApCiB7CiB9CiAKQEAgLTU5LDI5ICs1OCwxOCBAQCBib29sIExhenlEZWNv
ZGluZ1BpeGVsUmVmOjppc0NsaXBwZWQoKSBjb25zdAogdm9pZCogTGF6eURlY29kaW5nUGl4ZWxS
ZWY6Om9uTG9ja1BpeGVscyhTa0NvbG9yVGFibGUqKikKIHsKICAgICBtX211dGV4LmxvY2soKTsK
LSAgICBBU1NFUlQoIW1fbG9ja2VkQ2FjaGVkSW1hZ2UpOwotCi0gICAgbV9sb2NrZWRDYWNoZWRJ
bWFnZSA9IEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+bG9ja0NvbXBsZXRlQ2FjaGUo
bV9mcmFtZUdlbmVyYXRvci5nZXQoKSwgbV9zY2FsZWRTaXplKTsKLQotICAgIC8vIFVzZSBJbWFn
ZUZyYW1lR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBpbWFnZS4gSXQgd2lsbCBsb2NrIHRoZSBj
YWNoZQotICAgIC8vIGVudHJ5IGZvciB1cy4KLSAgICBpZiAoIW1fbG9ja2VkQ2FjaGVkSW1hZ2Up
Ci0gICAgICAgIG1fbG9ja2VkQ2FjaGVkSW1hZ2UgPSBtX2ZyYW1lR2VuZXJhdG9yLT5kZWNvZGVB
bmRTY2FsZShtX3NjYWxlZFNpemUpOwotCi0gICAgaWYgKCFtX2xvY2tlZENhY2hlZEltYWdlKQor
ICAgIEFTU0VSVChtX2xvY2tlZEJpdG1hcC5pc051bGwoKSk7CisgICAgbV9sb2NrZWRCaXRtYXAg
PSBtX2ZyYW1lR2VuZXJhdG9yLT5kZWNvZGVBbmRTY2FsZShtX3NjYWxlZFNpemUsIG1fc2NhbGVk
U3Vic2V0KTsKKyAgICBpZiAobV9sb2NrZWRCaXRtYXAuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biAwOwotCi0gICAgQVNTRVJUKCFtX2xvY2tlZENhY2hlZEltYWdlLT5iaXRtYXAoKS5pc051bGwo
KSk7Ci0gICAgQVNTRVJUKG1fbG9ja2VkQ2FjaGVkSW1hZ2UtPnNjYWxlZFNpemUoKSA9PSBtX3Nj
YWxlZFNpemUpOwotICAgIHJldHVybiBtX2xvY2tlZENhY2hlZEltYWdlLT5iaXRtYXAoKS5nZXRB
ZGRyKG1fc2NhbGVkU3Vic2V0LngoKSwgbV9zY2FsZWRTdWJzZXQueSgpKTsKKyAgICBtX2xvY2tl
ZEJpdG1hcC5sb2NrUGl4ZWxzKCk7CisgICAgcmV0dXJuIG1fbG9ja2VkQml0bWFwLmdldEFkZHIo
MCwgMCk7CiB9CiAKIHZvaWQgTGF6eURlY29kaW5nUGl4ZWxSZWY6Om9uVW5sb2NrUGl4ZWxzKCkK
IHsKLSAgICBpZiAobV9sb2NrZWRDYWNoZWRJbWFnZSkgewotICAgICAgICBJbWFnZURlY29kaW5n
U3RvcmU6Omluc3RhbmNlKCktPnVubG9ja0NhY2hlKG1fZnJhbWVHZW5lcmF0b3IuZ2V0KCksIG1f
bG9ja2VkQ2FjaGVkSW1hZ2UpOwotICAgICAgICBtX2xvY2tlZENhY2hlZEltYWdlID0gMDsKLSAg
ICB9CisgICAgbV9sb2NrZWRCaXRtYXAudW5sb2NrUGl4ZWxzKCk7CisgICAgbV9sb2NrZWRCaXRt
YXAucmVzZXQoKTsKICAgICBtX211dGV4LnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQaXhlbFJl
Zi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF6eURlY29k
aW5nUGl4ZWxSZWYuaAppbmRleCA5YjJhNDZkNGU1ZDliNDVmNGUwNzJlNzMyODBjMTRiMDJhYjJh
MGI3Li44MDMxNGNmMjFmN2EwYWJjYmUxNDMwODhmYjBkYzZhZWUyZDBiNDI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQ
aXhlbFJlZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xhenlEZWNvZGluZ1BpeGVsUmVmLmgKQEAgLTM4LDcgKzM4LDYgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSW1hZ2VGcmFtZUdlbmVyYXRvcjsKLWNsYXNzIFNjYWxlZEltYWdlRnJh
Z21lbnQ7CiAKIGNsYXNzIExhenlEZWNvZGluZ1BpeGVsUmVmIDogcHVibGljIFNrUGl4ZWxSZWYg
ewogcHVibGljOgpAQCAtNjIsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFNrSVNpemUgbV9zY2Fs
ZWRTaXplOwogICAgIFNrSVJlY3QgbV9zY2FsZWRTdWJzZXQ7CiAKLSAgICBjb25zdCBTY2FsZWRJ
bWFnZUZyYWdtZW50KiBtX2xvY2tlZENhY2hlZEltYWdlOworICAgIFNrQml0bWFwIG1fbG9ja2Vk
Qml0bWFwOwogICAgIE11dGV4IG1fbXV0ZXg7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJbWFnZUZyYWdtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJh
Z21lbnQuY3BwCmluZGV4IDcxYmI2MjBhZWI0NzY5NDU0YWY1NTJmYzY1OTVjYTg5N2I5ZDU0NTIu
Ljk3NGU2ZmY4NDdlYzViNWRkNDY5NThmMjBiZDQ4MTI5MzliZDM1NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Nj
YWxlZEltYWdlRnJhZ21lbnQuY3BwCkBAIC0zMywxMSArMzMsMjIgQEAgU2NhbGVkSW1hZ2VGcmFn
bWVudDo6flNjYWxlZEltYWdlRnJhZ21lbnQoKQogewogfQogCi1TY2FsZWRJbWFnZUZyYWdtZW50
OjpTY2FsZWRJbWFnZUZyYWdtZW50KGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUsIGNvbnN0IFNr
Qml0bWFwJiBiaXRtYXAsIGNvbnN0IGJvb2wgaXNDb21wbGV0ZSkKLSAgICA6IG1fc2NhbGVkU2l6
ZShzY2FsZWRTaXplKQorU2NhbGVkSW1hZ2VGcmFnbWVudDo6U2NhbGVkSW1hZ2VGcmFnbWVudChp
bnQgaW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSwgY29uc3QgU2tCaXRtYXAmIGJp
dG1hcCwgY29uc3QgYm9vbCBpc0NvbXBsZXRlKQorICAgIDogbV9pbWFnZUlkKGltYWdlSWQpCisg
ICAgLCBtX3NjYWxlZFNpemUoc2NhbGVkU2l6ZSkKICAgICAsIG1fYml0bWFwKGJpdG1hcCkKICAg
ICAsIG1faXNDb21wbGV0ZShpc0NvbXBsZXRlKQogewogfQogCitib29sIFNjYWxlZEltYWdlRnJh
Z21lbnQ6OmlzRXF1YWwoaW50IGltYWdlSWQsIGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGltYWdlSWQgPT0gbV9pbWFnZUlkICYmIHNjYWxlZFNpemUgPT0g
bV9zY2FsZWRTaXplOworfQorCitib29sIFNjYWxlZEltYWdlRnJhZ21lbnQ6OmlzRXF1YWwoaW50
IGltYWdlSWQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGltYWdlSWQgPT0gbV9pbWFnZUlkOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJbWFnZUZyYWdtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJbWFnZUZyYWdtZW50LmgKaW5k
ZXggZjA3MDdiM2NlMzRjNjQ0ZjViYjc1MTRmZDY0YjFkZjJkMDcxMmM3Ny4uNWI3ZmZjOTYwMTRl
MDU3M2U4MzUwNzgwMmI2NmYzNGQ5YmNkM2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2NhbGVkSW1hZ2VGcmFnbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21l
bnQuaApAQCAtMzQsMjMgKzM0LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gU2Nh
bGVkSW1hZ2VGcmFnbWVudCBpcyBhIHNjYWxlZCB2ZXJzaW9uIG9mIGFuIGltYWdlLgorLy8gU2Nh
bGVkSW1hZ2VGcmFnbWVudCBpcyBhIHNjYWxlZCB2ZXJzaW9uIG9mIGEgaW1hZ2UuIEl0IGlzIGlk
ZW50aWZpZWQKKy8vIGJ5IHR3byB0aGluZ3M6CisvLyAxLiBJbWFnZSBJRC4gVGhlIG9yaWdpbmFs
IGltYWdlIHRoYXQgdGhpcyBmcmFnbWVudCBjb21lcyBmcm9tLgorLy8gMi4gU2NhbGVkIGltYWdl
IHNpemUuCiBjbGFzcyBTY2FsZWRJbWFnZUZyYWdtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxTY2FsZWRJbWFnZUZyYWdtZW50PiBjcmVhdGUoY29uc3QgU2tJU2l6ZSYgc2Nh
bGVkU2l6ZSwgY29uc3QgU2tCaXRtYXAmIGJpdG1hcCwgYm9vbCBpc0NvbXBsZXRlKQorICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNjYWxlZEltYWdlRnJhZ21lbnQ+IGNyZWF0ZShpbnQgaW1hZ2VJZCwg
Y29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSwgY29uc3QgU2tCaXRtYXAmIGJpdG1hcCwgYm9vbCBp
c0NvbXBsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY2FsZWRJbWFn
ZUZyYWdtZW50KHNjYWxlZFNpemUsIGJpdG1hcCwgaXNDb21wbGV0ZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFNjYWxlZEltYWdlRnJhZ21lbnQoaW1hZ2VJZCwgc2NhbGVkU2l6ZSwg
Yml0bWFwLCBpc0NvbXBsZXRlKSk7CiAgICAgfQogCi0gICAgU2NhbGVkSW1hZ2VGcmFnbWVudChj
b25zdCBTa0lTaXplJiwgY29uc3QgU2tCaXRtYXAmLCBib29sIGlzQ29tcGxldGUpOworICAgIFNj
YWxlZEltYWdlRnJhZ21lbnQoaW50IGltYWdlSWQsIGNvbnN0IFNrSVNpemUmLCBjb25zdCBTa0Jp
dG1hcCYsIGJvb2wgaXNDb21wbGV0ZSk7CiAgICAgflNjYWxlZEltYWdlRnJhZ21lbnQoKTsKIAot
ICAgIGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlZFNp
emU7IH0KICAgICBjb25zdCBTa0JpdG1hcCYgYml0bWFwKCkgY29uc3QgeyByZXR1cm4gbV9iaXRt
YXA7IH0KICAgICBTa0JpdG1hcCYgYml0bWFwKCkgeyByZXR1cm4gbV9iaXRtYXA7IH0KKworICAg
IGJvb2wgaXNFcXVhbChpbnQgaW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSkgY29u
c3Q7CisgICAgYm9vbCBpc0VxdWFsKGludCBpbWFnZUlkKSBjb25zdDsKICAgICBib29sIGlzQ29t
cGxldGUoKSBjb25zdCB7IHJldHVybiBtX2lzQ29tcGxldGU7IH0KIAogcHJpdmF0ZToKKyAgICBp
bnQgbV9pbWFnZUlkOwogICAgIFNrSVNpemUgbV9zY2FsZWRTaXplOwogICAgIFNrQml0bWFwIG1f
Yml0bWFwOwogICAgIGJvb2wgbV9pc0NvbXBsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tTaXplSGFzaC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tTaXplSGFzaC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZjI5N2NmZGY3NTIyNWYyYTNlOGIzNzgwN2Q0ODVlZDAwMGRkMjk4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrU2l6ZUhhc2guaAorKysgL2Rldi9u
dWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNrU2l6ZUhhc2hfaAotI2Rl
ZmluZSBTa1NpemVIYXNoX2gKLQotI2luY2x1ZGUgIlNrU2NhbGFyLmgiCi0jaW5jbHVkZSAiU2tT
aXplLmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgSW50SGFzaDxTa1NpemU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBTa1NpemUmIGtleSkgeyByZXR1cm4gcGFpckludEhhc2goa2V5LndpZHRoKCks
IGtleS5oZWlnaHQoKSk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTa1NpemUmIGEs
IGNvbnN0IFNrU2l6ZSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8U2tTaXplPiB7Ci0gICAgdHlwZWRlZiBJbnRIYXNoPFNrU2l6
ZT4gSGFzaDsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8U2tTaXplPiA6IEdl
bmVyaWNIYXNoVHJhaXRzPFNrU2l6ZT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSB0cnVlOwotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24g
PSBmYWxzZTsKLSAgICBzdGF0aWMgU2tTaXplIGVtcHR5VmFsdWUoKSB7IHJldHVybiBTa1NpemU6
Ok1ha2UoMCwgMCk7IH0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoU2tT
aXplJiBzbG90KQotICAgIHsKLSAgICAgICAgc2xvdCA9IFNrU2l6ZTo6TWFrZSgtMSwgLTEpOwot
ICAgIH0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBTa1NpemUmIHZhbHVl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZhbHVlLndpZHRoKCkgPT0gLTEgJiYgdmFsdWUuaGVp
Z2h0KCkgPT0gLTE7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgSW50SGFzaDxTa0lT
aXplPiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU2tJU2l6ZSYga2V5KSB7IHJl
dHVybiBwYWlySW50SGFzaChrZXkud2lkdGgoKSwga2V5LmhlaWdodCgpKTsgfQotICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IFNrSVNpemUmIGEsIGNvbnN0IFNrSVNpemUmIGIpIHsgcmV0dXJu
IGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFNrSVNp
emU+IHsKLSAgICB0eXBlZGVmIEludEhhc2g8U2tJU2l6ZT4gSGFzaDsKLX07Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IEhhc2hUcmFpdHM8U2tJU2l6ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxTa0lTaXpl
PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwotICAgIHN0YXRpYyBT
a0lTaXplIGVtcHR5VmFsdWUoKSB7IHJldHVybiBTa0lTaXplOjpNYWtlKDAsIDApOyB9Ci0gICAg
c3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNrSVNpemUmIHNsb3QpCi0gICAgewot
ICAgICAgICBzbG90ID0gU2tJU2l6ZTo6TWFrZSgtMSwgLTEpOwotICAgIH0KLSAgICBzdGF0aWMg
Ym9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBTa0lTaXplJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB2YWx1ZS53aWR0aCgpID09IC0xICYmIHZhbHVlLmhlaWdodCgpID09IC0xOwotICAg
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gU2tTaXplSGFzaF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBkZjUwYWZmYzU5MTEyMTkyZTc1MDVmNWUy
YjgwNTg3YmM5ZDVkZDcyLi5kZDVkNmNmMWI2YmU4YjBjYjA5N2VmMGUyNTRmZDAxMDNlZjNkMDdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTgwLDcgKzgwLDYgQEAKICAgICAg
ICAgICAgICd0ZXN0cy9JREJLZXlQYXRoVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0lE
QkxldmVsREJDb2RpbmdUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURCUmVxdWVzdFRl
c3QuY3BwJywKLSAgICAgICAgICAgICd0ZXN0cy9JbWFnZUZyYW1lR2VuZXJhdG9yVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9Nb2NrSW1hZ2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0tl
eWJvYXJkVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViS2l0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKaW5kZXgg
YTUxN2QxNTVlNmZhMWYyZjIxOWU5MTFkN2ZhOTlhZTE0NzI5MWFmYy4uNmJjYTFkODEwNGU1NmIw
NjRkZjUyNzU2MGU4ZmQxMzRiOWRiYmJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViS2l0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwCkBAIC0xMzMsNyArMTMzLDYgQEAgdm9pZCBpbml0aWFsaXplV2l0aG91dFY4KFdlYktp
dFBsYXRmb3JtU3VwcG9ydCogd2ViS2l0UGxhdGZvcm1TdXBwb3J0KQogICAgIEFTU0VSVCghc193
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQpOwogICAgIHNfd2ViS2l0UGxhdGZvcm1TdXBwb3J0ID0gd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0OwogICAgIFBsYXRmb3JtOjppbml0aWFsaXplKHNfd2ViS2l0UGxh
dGZvcm1TdXBwb3J0KTsKLSAgICBXZWJDb3JlOjpJbWFnZURlY29kaW5nU3RvcmU6OmluaXRpYWxp
emVPbmNlKCk7CiAKICAgICBXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcAppbmRleCA2YTMzNzg2YWNmM2I1MjU4ZTE0YmUwY2MxNWRhYTFiMTIw
ZmFmNzBkLi4xNjQ4ODBhYTdhNTZkZTAyMzg3Y2JiOTg1NjBlNDIzMzJhZTBmZDIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTMxLDgg
KzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5nc0ltcGwu
aCIKIAotI2luY2x1ZGUgIkRlZmVycmVkSW1hZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRm9udFJl
bmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJJbWFnZURlY29kaW5nU3RvcmUuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KICNpbmNsdWRlIDxw
dWJsaWMvV2ViVVJMLmg+CkBAIC01MDUsNyArNTA1LDEwIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBs
OjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIHZvaWQgV2ViU2V0
dGluZ3NJbXBsOjpzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
IHsKLSAgICBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6c2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICBp
ZiAoIW1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCAmJiBlbmFibGVkKQorICAgICAgICBJ
bWFnZURlY29kaW5nU3RvcmU6OmluaXRpYWxpemVPbk1haW5UaHJlYWQoKTsKKyAgICBpZiAobV9k
ZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkICYmICFlbmFibGVkKQorICAgICAgICBJbWFnZURl
Y29kaW5nU3RvcmU6OnNodXRkb3duKCk7CiAgICAgbV9kZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFi
bGVkID0gZW5hYmxlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9EZWZlcnJlZEltYWdlRGVjb2RlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9EZWZlcnJlZEltYWdlRGVjb2RlclRlc3QuY3BwCmluZGV4IDdmZDQwMTdhNmU0MGJm
ZmNhZjc3ZGY2Y2NmMTFmMDUyNjRhOGY2MzYuLjRiY2MyOTg4MjJlNTJlMzBkMWM0ZWFmNjMwNjgw
YTlhZTY1OWZmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRGVm
ZXJyZWRJbWFnZURlY29kZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0RlZmVycmVkSW1hZ2VEZWNvZGVyVGVzdC5jcHAKQEAgLTczLDggKzczLDcgQEAgY2xhc3Mg
RGVmZXJyZWRJbWFnZURlY29kZXJUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCwgcHVibGlj
IE1vY2tJbWFnZURlY29kZXIKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAg
IHsKLSAgICAgICAgSW1hZ2VEZWNvZGluZ1N0b3JlOjppbml0aWFsaXplT25jZSgpOwotICAgICAg
ICBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6c2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgSW1hZ2VE
ZWNvZGluZ1N0b3JlOjppbml0aWFsaXplT25NYWluVGhyZWFkKCk7CiAgICAgICAgIG1fZGF0YSA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHdoaXRlUE5HLCBzaXplb2Yod2hpdGVQTkcpKTsKICAgICAg
ICAgbV9hY3R1YWxEZWNvZGVyID0gbmV3IE1vY2tJbWFnZURlY29kZXIodGhpcyk7CiAgICAgICAg
IG1fYWN0dWFsRGVjb2Rlci0+c2V0U2l6ZSgxLCAxKTsKQEAgLTkxLDE5ICs5MCwxMCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlckJlaW5nRGVzdHJveWVkKCkKICAgICB7Cisg
ICAgICAgIG1fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQgPSBtX2FjdHVhbERlY29kZXItPmZyYW1l
QnVmZmVyUmVxdWVzdENvdW50KCk7CiAgICAgICAgIG1fYWN0dWFsRGVjb2RlciA9IDA7CiAgICAg
fQogCi0gICAgdmlydHVhbCB2b2lkIGZyYW1lQnVmZmVyUmVxdWVzdGVkKCkKLSAgICB7Ci0gICAg
ICAgICsrbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudDsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIElt
YWdlRnJhbWU6OkZyYW1lU3RhdHVzIGZyYW1lU3RhdHVzKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlOwotICAgIH0KLQogcHJvdGVjdGVkOgogICAgIC8v
IERvbid0IG93biB0aGlzIGJ1dCBzYXZlcyB0aGUgcG9pbnRlciB0byBxdWVyeSBzdGF0ZXMuCiAg
ICAgTW9ja0ltYWdlRGVjb2RlciogbV9hY3R1YWxEZWNvZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUZyYW1lR2VuZXJhdG9yVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlRnJhbWVHZW5lcmF0b3JUZXN0LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGEwYTJmODY0MjVhZDMyNjZjNDQ4ODU4NDZhOWY0
ZDRiZTg4OGIzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlRnJhbWVHZW5lcmF0b3JUZXN0LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaW5jbHVkZSAiSW1hZ2VGcmFtZUdlbmVyYXRvci5oIgotCi0jaW5jbHVkZSAiSW1h
Z2VEZWNvZGluZ1N0b3JlLmgiCi0jaW5jbHVkZSAiTW9ja0ltYWdlRGVjb2Rlci5oIgotI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0KLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBJbWFnZUZyYW1lR2VuZXJh
dG9yVGVzdDsKLQotLy8gSGVscGVyIG1ldGhvZHMgdG8gZ2VuZXJhdGUgc3RhbmRhcmQgc2l6ZXMu
Ci1Ta0lTaXplIGZ1bGxTaXplKCkgeyByZXR1cm4gU2tJU2l6ZTo6TWFrZSgxMDAsIDEwMCk7IH0K
LVNrSVNpemUgc2NhbGVkU2l6ZSgpIHsgcmV0dXJuIFNrSVNpemU6Ok1ha2UoNTAsIDUwKTsgfQot
Ci1jbGFzcyBJbWFnZUZyYW1lR2VuZXJhdG9yVGVzdDsKLQotY2xhc3MgTW9ja0ltYWdlRGVjb2Rl
ckZhY3RvcnkgOiBwdWJsaWMgSW1hZ2VEZWNvZGVyRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TW9ja0ltYWdlRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZShJbWFnZUZyYW1l
R2VuZXJhdG9yVGVzdCogdGVzdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TW9ja0ltYWdlRGVjb2RlckZhY3RvcnkodGVzdCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgUGFz
c093blB0cjxJbWFnZURlY29kZXI+IGNyZWF0ZSgpOwotCi1wcml2YXRlOgotICAgIE1vY2tJbWFn
ZURlY29kZXJGYWN0b3J5KEltYWdlRnJhbWVHZW5lcmF0b3JUZXN0KiB0ZXN0KQotICAgICAgICA6
IG1fdGVzdCh0ZXN0KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZUZyYW1lR2VuZXJhdG9yVGVz
dCogbV90ZXN0OwotfTsKLQotY2xhc3MgSW1hZ2VGcmFtZUdlbmVyYXRvclRlc3QgOiBwdWJsaWMg
Ojp0ZXN0aW5nOjpUZXN0LCBwdWJsaWMgTW9ja0ltYWdlRGVjb2RlckNsaWVudCB7Ci1wdWJsaWM6
Ci0gICAgdmlydHVhbCB2b2lkIFNldFVwKCkKLSAgICB7Ci0gICAgICAgIEltYWdlRGVjb2RpbmdT
dG9yZTo6aW5pdGlhbGl6ZU9uY2UoKTsKLSAgICAgICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoKTsKLSAgICAgICAgbV9nZW5lcmF0b3IgPSBJbWFnZUZyYW1lR2VuZXJhdG9yOjpjcmVh
dGUoZnVsbFNpemUoKSwgbV9kYXRhLCB0cnVlKTsKLSAgICAgICAgbV9nZW5lcmF0b3ItPnNldElt
YWdlRGVjb2RlckZhY3RvcnlGb3JUZXN0aW5nKE1vY2tJbWFnZURlY29kZXJGYWN0b3J5OjpjcmVh
dGUodGhpcykpOwotICAgICAgICBtX2ZyYW1lQnVmZmVyUmVxdWVzdENvdW50ID0gMDsKLSAgICAg
ICAgbV9mcmFtZVN0YXR1cyA9IEltYWdlRnJhbWU6OkZyYW1lRW1wdHk7Ci0gICAgfQotCi0gICAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkKLSAgICB7Ci0gICAgICAgIEltYWdlRGVjb2RpbmdTdG9y
ZTo6c2h1dGRvd24oKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlckJlaW5nRGVz
dHJveWVkKCkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIGZyYW1lQnVmZmVyUmVx
dWVzdGVkKCkKLSAgICB7Ci0gICAgICAgICsrbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudDsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIEltYWdlRnJhbWU6OkZyYW1lU3RhdHVzIGZyYW1lU3RhdHVzKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBtX2ZyYW1lU3RhdHVzOwotICAgIH0KLQotcHJvdGVjdGVk
OgotICAgIFBhc3NPd25QdHI8U2NhbGVkSW1hZ2VGcmFnbWVudD4gY3JlYXRlQ29tcGxldGVJbWFn
ZShjb25zdCBTa0lTaXplJiBzaXplKQotICAgIHsKLSAgICAgICAgU2tCaXRtYXAgYml0bWFwOwot
ICAgICAgICBiaXRtYXAuc2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKLSAgICAgICAgYml0bWFwLmFsbG9jUGl4ZWxzKCk7
Ci0gICAgICAgIHJldHVybiBTY2FsZWRJbWFnZUZyYWdtZW50OjpjcmVhdGUoc2l6ZSwgYml0bWFw
LCB0cnVlKTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldEZyYW1lU3RhdHVzKEltYWdlRnJhbWU6OkZy
YW1lU3RhdHVzIHN0YXR1cykgIHsgbV9mcmFtZVN0YXR1cyA9IHN0YXR1czsgfQotCi0gICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwotICAgIFJlZlB0cjxJbWFnZUZyYW1lR2VuZXJhdG9y
PiBtX2dlbmVyYXRvcjsKLSAgICBpbnQgbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudDsKLSAgICBJ
bWFnZUZyYW1lOjpGcmFtZVN0YXR1cyBtX2ZyYW1lU3RhdHVzOwotfTsKLQotUGFzc093blB0cjxJ
bWFnZURlY29kZXI+IE1vY2tJbWFnZURlY29kZXJGYWN0b3J5OjpjcmVhdGUoKQotewotICAgIE1v
Y2tJbWFnZURlY29kZXIqIGRlY29kZXIgPSBuZXcgTW9ja0ltYWdlRGVjb2RlcihtX3Rlc3QpOwot
ICAgIGRlY29kZXItPnNldFNpemUoZnVsbFNpemUoKS53aWR0aCgpLCBmdWxsU2l6ZSgpLmhlaWdo
dCgpKTsKLSAgICByZXR1cm4gYWRvcHRQdHIoZGVjb2Rlcik7Ci19Ci0KLVRFU1RfRihJbWFnZUZy
YW1lR2VuZXJhdG9yVGVzdCwgY2FjaGVIaXQpCi17Ci0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFn
bWVudCogZnVsbEltYWdlID0gSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgpLT5pbnNlcnRB
bmRMb2NrQ2FjaGUoCi0gICAgICAgIG1fZ2VuZXJhdG9yLmdldCgpLCBjcmVhdGVDb21wbGV0ZUlt
YWdlKGZ1bGxTaXplKCkpKTsKLSAgICBFWFBFQ1RfRVEoZnVsbFNpemUoKSwgZnVsbEltYWdlLT5z
Y2FsZWRTaXplKCkpOwotICAgIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+dW5sb2Nr
Q2FjaGUobV9nZW5lcmF0b3IuZ2V0KCksIGZ1bGxJbWFnZSk7Ci0KLSAgICBjb25zdCBTY2FsZWRJ
bWFnZUZyYWdtZW50KiB0ZW1wSW1hZ2UgPSBtX2dlbmVyYXRvci0+ZGVjb2RlQW5kU2NhbGUoZnVs
bFNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKGZ1bGxJbWFnZSwgdGVtcEltYWdlKTsKLSAgICBFWFBF
Q1RfRVEoZnVsbFNpemUoKSwgdGVtcEltYWdlLT5zY2FsZWRTaXplKCkpOwotICAgIEltYWdlRGVj
b2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+dW5sb2NrQ2FjaGUobV9nZW5lcmF0b3IuZ2V0KCksIHRl
bXBJbWFnZSk7Ci0gICAgRVhQRUNUX0VRKDAsIG1fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQpOwot
fQotCi1URVNUX0YoSW1hZ2VGcmFtZUdlbmVyYXRvclRlc3QsIGNhY2hlTWlzc1dpdGhTY2FsZSkK
LXsKLSAgICBjb25zdCBTY2FsZWRJbWFnZUZyYWdtZW50KiBmdWxsSW1hZ2UgPSBJbWFnZURlY29k
aW5nU3RvcmU6Omluc3RhbmNlKCktPmluc2VydEFuZExvY2tDYWNoZSgKLSAgICAgICAgbV9nZW5l
cmF0b3IuZ2V0KCksIGNyZWF0ZUNvbXBsZXRlSW1hZ2UoZnVsbFNpemUoKSkpOwotICAgIEVYUEVD
VF9FUShmdWxsU2l6ZSgpLCBmdWxsSW1hZ2UtPnNjYWxlZFNpemUoKSk7Ci0gICAgSW1hZ2VEZWNv
ZGluZ1N0b3JlOjppbnN0YW5jZSgpLT51bmxvY2tDYWNoZShtX2dlbmVyYXRvci5nZXQoKSwgZnVs
bEltYWdlKTsKLQotICAgIC8vIENhY2hlIG1pc3MgYmVjYXVzZSBvZiBzY2FsZWQgc2l6ZSBub3Qg
Zm91bmQuCi0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCogc2NhbGVkSW1hZ2UgPSBtX2dl
bmVyYXRvci0+ZGVjb2RlQW5kU2NhbGUoc2NhbGVkU2l6ZSgpKTsKLSAgICBFWFBFQ1RfTkUoZnVs
bEltYWdlLCBzY2FsZWRJbWFnZSk7Ci0gICAgRVhQRUNUX0VRKHNjYWxlZFNpemUoKSwgc2NhbGVk
SW1hZ2UtPnNjYWxlZFNpemUoKSk7Ci0gICAgSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgp
LT51bmxvY2tDYWNoZShtX2dlbmVyYXRvci5nZXQoKSwgc2NhbGVkSW1hZ2UpOwotCi0gICAgLy8g
Q2FjaGUgaGl0LgotICAgIGNvbnN0IFNjYWxlZEltYWdlRnJhZ21lbnQqIHRlbXBJbWFnZSA9IG1f
Z2VuZXJhdG9yLT5kZWNvZGVBbmRTY2FsZShzY2FsZWRTaXplKCkpOwotICAgIEVYUEVDVF9FUShz
Y2FsZWRJbWFnZSwgdGVtcEltYWdlKTsKLSAgICBFWFBFQ1RfRVEoc2NhbGVkU2l6ZSgpLCB0ZW1w
SW1hZ2UtPnNjYWxlZFNpemUoKSk7Ci0gICAgSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgp
LT51bmxvY2tDYWNoZShtX2dlbmVyYXRvci5nZXQoKSwgdGVtcEltYWdlKTsKLSAgICBFWFBFQ1Rf
RVEoMCwgbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudCk7Ci19Ci0KLVRFU1RfRihJbWFnZUZyYW1l
R2VuZXJhdG9yVGVzdCwgY2FjaGVNaXNzV2l0aERlY29kZUFuZFNjYWxlKQotewotICAgIHNldEZy
YW1lU3RhdHVzKEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUpOwotCi0gICAgLy8gQ2FjaGUgbWlz
cy4KLSAgICBjb25zdCBTY2FsZWRJbWFnZUZyYWdtZW50KiBzY2FsZWRJbWFnZSA9IG1fZ2VuZXJh
dG9yLT5kZWNvZGVBbmRTY2FsZShzY2FsZWRTaXplKCkpOwotICAgIEVYUEVDVF9FUSgxLCBtX2Zy
YW1lQnVmZmVyUmVxdWVzdENvdW50KTsKLSAgICBFWFBFQ1RfRVEoc2NhbGVkU2l6ZSgpLCBzY2Fs
ZWRJbWFnZS0+c2NhbGVkU2l6ZSgpKTsKLSAgICBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNl
KCktPnVubG9ja0NhY2hlKG1fZ2VuZXJhdG9yLmdldCgpLCBzY2FsZWRJbWFnZSk7Ci0KLSAgICAv
LyBDYWNoZSBoaXQuCi0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCogZnVsbEltYWdlID0g
bV9nZW5lcmF0b3ItPmRlY29kZUFuZFNjYWxlKGZ1bGxTaXplKCkpOwotICAgIEVYUEVDVF9ORShz
Y2FsZWRJbWFnZSwgZnVsbEltYWdlKTsKLSAgICBFWFBFQ1RfRVEoZnVsbFNpemUoKSwgZnVsbElt
YWdlLT5zY2FsZWRTaXplKCkpOwotICAgIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+
dW5sb2NrQ2FjaGUobV9nZW5lcmF0b3IuZ2V0KCksIGZ1bGxJbWFnZSk7Ci0KLSAgICAvLyBDYWNo
ZSBoaXQuCi0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVudCogdGVtcEltYWdlID0gbV9nZW5l
cmF0b3ItPmRlY29kZUFuZFNjYWxlKHNjYWxlZFNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKHNjYWxl
ZEltYWdlLCB0ZW1wSW1hZ2UpOwotICAgIEVYUEVDVF9FUShzY2FsZWRTaXplKCksIHRlbXBJbWFn
ZS0+c2NhbGVkU2l6ZSgpKTsKLSAgICBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNlKCktPnVu
bG9ja0NhY2hlKG1fZ2VuZXJhdG9yLmdldCgpLCB0ZW1wSW1hZ2UpOwotICAgIEVYUEVDVF9FUSgx
LCBtX2ZyYW1lQnVmZmVyUmVxdWVzdENvdW50KTsKLX0KLQotLy8gVGVzdCB0aGF0IGluY29tcGxl
dGUgZnJhbWVzIGFyZSBub3QgY2FjaGVkLgotVEVTVF9GKEltYWdlRnJhbWVHZW5lcmF0b3JUZXN0
LCBjYWNoZU1pc3NXaXRoSW5jb21wbGV0ZURlY29kZSkKLXsKLSAgICBzZXRGcmFtZVN0YXR1cyhJ
bWFnZUZyYW1lOjpGcmFtZVBhcnRpYWwpOwotCi0gICAgY29uc3QgU2NhbGVkSW1hZ2VGcmFnbWVu
dCogdGVtcEltYWdlID0gbV9nZW5lcmF0b3ItPmRlY29kZUFuZFNjYWxlKHNjYWxlZFNpemUoKSk7
Ci0gICAgRVhQRUNUX0VRKDEsIG1fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQpOwotICAgIEltYWdl
RGVjb2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+dW5sb2NrQ2FjaGUobV9nZW5lcmF0b3IuZ2V0KCks
IHRlbXBJbWFnZSk7Ci0KLSAgICB0ZW1wSW1hZ2UgPSBtX2dlbmVyYXRvci0+ZGVjb2RlQW5kU2Nh
bGUoZnVsbFNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIG1fZnJhbWVCdWZmZXJSZXF1ZXN0Q291
bnQpOwotICAgIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2UoKS0+dW5sb2NrQ2FjaGUobV9n
ZW5lcmF0b3IuZ2V0KCksIHRlbXBJbWFnZSk7Ci0KLSAgICB0ZW1wSW1hZ2UgPSBtX2dlbmVyYXRv
ci0+ZGVjb2RlQW5kU2NhbGUoc2NhbGVkU2l6ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMywgbV9mcmFt
ZUJ1ZmZlclJlcXVlc3RDb3VudCk7Ci0gICAgSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZSgp
LT51bmxvY2tDYWNoZShtX2dlbmVyYXRvci5nZXQoKSwgdGVtcEltYWdlKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTW9ja0lt
YWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrSW1hZ2VEZWNv
ZGVyLmgKaW5kZXggOGI0ZjQwMzgyMzljMjk1ZGU0OGM5ZGVlZDdmMzllZjhhZDU4ZjA3NS4uYzlj
MGQwMWQ2ZDgzODIwOTJiMDc0Yjk0ZTRkZDlmZDdhZTFjODY4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrSW1hZ2VEZWNvZGVyLmgKQEAgLTMyLDggKzMyLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9ja0ltYWdlRGVjb2RlckNsaWVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY29kZXJCZWluZ0Rlc3Ryb3llZCgpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVCdWZmZXJSZXF1ZXN0ZWQoKSA9IDA7Ci0gICAgdmlydHVhbCBJbWFn
ZUZyYW1lOjpGcmFtZVN0YXR1cyBmcmFtZVN0YXR1cygpID0gMDsKIH07CiAKIGNsYXNzIE1vY2tJ
bWFnZURlY29kZXIgOiBwdWJsaWMgSW1hZ2VEZWNvZGVyIHsKQEAgLTU3LDExICs1NSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3Qp
CiAgICAgewogICAgICAgICArK21fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQ7Ci0gICAgICAgIG1f
Y2xpZW50LT5mcmFtZUJ1ZmZlclJlcXVlc3RlZCgpOwogCiAgICAgICAgIG1fZnJhbWVCdWZmZXJD
YWNoZS5yZXNpemUoMSk7CiAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZVswXS5zZXRTaXplKHNp
emUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpOwotICAgICAgICBtX2ZyYW1lQnVmZmVyQ2Fj
aGVbMF0uc2V0U3RhdHVzKG1fY2xpZW50LT5mcmFtZVN0YXR1cygpKTsKICAgICAgICAgcmV0dXJu
ICZtX2ZyYW1lQnVmZmVyQ2FjaGVbMF07CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>