<?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>126870</bug_id>
          
          <creation_ts>2014-01-12 22:20:04 -0800</creation_ts>
          <short_desc>REGRESSION(r161840): Caused jsscore and layout test failures (Requested by smfr on #webkit).</short_desc>
          <delta_ts>2014-01-12 22:22:46 -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>126854</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>967154</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-12 22:20:04 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161840 broke the build:
Caused jsscore and layout test failures (Requested by smfr on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967156</commentid>
    <comment_count>1</comment_count>
      <attachid>221006</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-12 22:20:27 -0800</bug_when>
    <thetext>Created attachment 221006
ROLLOUT of r161840

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>967160</commentid>
    <comment_count>2</comment_count>
      <attachid>221006</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-12 22:22:44 -0800</bug_when>
    <thetext>Comment on attachment 221006
ROLLOUT of r161840

Clearing flags on attachment: 221006

Committed r161861: &lt;http://trac.webkit.org/changeset/161861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967161</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-12 22:22:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221006</attachid>
            <date>2014-01-12 22:20:27 -0800</date>
            <delta_ts>2014-01-12 22:22:44 -0800</delta_ts>
            <desc>ROLLOUT of r161840</desc>
            <filename>bug-126870-20140112222026.patch</filename>
            <type>text/plain</type>
            <size>37084</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OGYwMGJiZWEwM2ZmMTFmYzU2NjJiOTE4YTQ5M2I3YjBjZjRlNDBjLi5jNzg0MDFiMmY0MTc4MzE5
MzU0ZWI1MWJjZTUyYzYwMDAxMTIwNzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNC0wMS0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MTg0MC4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTYxODQwCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY4NzAKKworICAgICAgICBDYXVz
ZWQganNzY29yZSBhbmQgbGF5b3V0IHRlc3QgZmFpbHVyZXMgKFJlcXVlc3RlZCBieSBzbWZyIG9u
CisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogQVBJL0pTVmFsdWVSZWYuY3BwOgorICAg
ICAgICAoSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyk6CisgICAgICAgICogYmluZGluZ3MvU2Ny
aXB0VmFsdWUuY3BwOgorICAgICAgICAoRGVwcmVjYXRlZDo6anNUb0luc3BlY3RvclZhbHVlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVEYXRlKToK
KyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAgICAgKEpTQzo6SWRlbnRpZmll
cjo6Y2hhcmFjdGVycyk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaDoKKyAg
ICAgICAgKEpTQzo6SlNTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorCiAyMDE0LTAxLTEyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgZGVwcmVjYXRlZENoYXJh
Y3RlcnMgYXMgYSBzeW5vbnltIGZvciBjaGFyYWN0ZXJzIGFuZCBjb252ZXJ0IG1vc3QgY2FsbCBz
aXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCBlNDM4YTE3NmE1Y2QxNGNmNzk0MzM5MDJiNGUxMTE4MDdkZDhmZGUwLi40OTMw
N2Y5MGRlYmQwZDY1ODY1MjhmNWMyMTljZThiZGFhNTZlZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTAxLTEyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTYxODQwLgorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjE4NDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjg3MAorCisgICAgICAgIENhdXNlZCBqc3Njb3Jl
IGFuZCBsYXlvdXQgdGVzdCBmYWlsdXJlcyAoUmVxdWVzdGVkIGJ5IHNtZnIgb24KKyAgICAgICAg
I3dlYmtpdCkuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAg
KFdURjo6U3RyaW5nSW1wbDo6cmVwbGFjZSk6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5n
Lmg6CisgICAgICAgIChXVEY6OlN0cmluZzo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVycyk6CisKIDIw
MTQtMDEtMTIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
YW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gaW5pdGlhbGl6ZURhdGVzKCkgd2hlbiBsYXVuY2hpbmcg
U2FmYXJpLCB3aGljaCB3YXMgaW50cm9kdWNlZCBpbiByMTYxODUyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZh
NTc3NWY1NTMxYmVjOTQyMzRlMDAyOGQ0MjEwN2VhZGUxODM4ZDUuLjI3YTQyNWJkMWNiMDJlNGE2
NTA0NGNkY2E4YzZmYTZlNmMyMDM5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAx
NC0wMS0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MTg0MC4KKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTYxODQwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY4NzAKKworICAgICAgICBDYXVzZWQganNzY29yZSBhbmQg
bGF5b3V0IHRlc3QgZmFpbHVyZXMgKFJlcXVlc3RlZCBieSBzbWZyIG9uCisgICAgICAgICN3ZWJr
aXQpLgorCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAg
ICAgICgrW1dlYlNjcmlwdE9iamVjdCBfY29udmVydFZhbHVlVG9PYmpjVmFsdWU6SlNDOjpvcmln
aW5Sb290T2JqZWN0OnJvb3RPYmplY3Q6XSk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250YWluc09ubHlXaGl0ZXNwYWNl
KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxl
VW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZlBhcmFncmFwaCk6CisgICAgICAg
IChXZWJDb3JlOjplbmRPZlBhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFBh
cnNlcklkaW9tcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpcExlYWRpbmdBbmRUcmFpbGlu
Z0hUTUxTcGFjZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRl
Z2VyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNoUmVnZXhTb3VyY2Up
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjppbnNlcnRQcm9wZXJ0eSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OmludGVybmFsUmVw
bGFjZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bmV3Q29vcmRzQXJyYXkpOgorICAgICAgICAqIHBsYXRmb3JtL0xpbmtIYXNoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnZpc2l0ZWRMaW5rSGFzaCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OnBhcnNlSGV4
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpUZXh0
UnVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNv
bWJpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbWJpbmVUZXh0Ojp3aWR0
aCk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnRFbGVtZW50OjpyZWdpc3RlckxpZ2F0dXJlc0luR2x5cGhDYWNoZSk6CisgICAgICAg
ICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5J
ZDo6ZXZhbHVhdGUpOgorICAgICAgICAqIHhtbC9YUGF0aE5vZGVTZXQuaDoKKwogMjAxNC0wMS0x
MiAgSmlud29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4
IGJ1aWxkIHdhcm5pbmdzIGJ5IHVudXNlZCBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDI2YTdmODY3NjAyMTQ0NDlhYjkxODVhZTJjZjRiNjYz
NzU5MDE4NzguLmViOTlmNWRkYjE0NTk3NTNhODE5ODBmMzg1Mjg4ZjM1OTdiNWE0ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtMzIzLDExICszMjMsMTEg
QEAgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgs
IEpTU3RyaW5nUmVmIHN0cmluZykKICAgICBBUElFbnRyeVNoaW0gZW50cnlTaGltKGV4ZWMpOwog
ICAgIFN0cmluZyBzdHIgPSBzdHJpbmctPnN0cmluZygpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9
IHN0ci5sZW5ndGgoKTsKLSAgICBpZiAoc3RyLmlzOEJpdCgpKSB7CisgICAgaWYgKGxlbmd0aCAm
JiBzdHIuaXM4Qml0KCkpIHsKICAgICAgICAgTGl0ZXJhbFBhcnNlcjxMQ2hhcj4gcGFyc2VyKGV4
ZWMsIHN0ci5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgsIFN0cmljdEpTT04pOwogICAgICAgICByZXR1
cm4gdG9SZWYoZXhlYywgcGFyc2VyLnRyeUxpdGVyYWxQYXJzZSgpKTsKICAgICB9Ci0gICAgTGl0
ZXJhbFBhcnNlcjxVQ2hhcj4gcGFyc2VyKGV4ZWMsIHN0ci5jaGFyYWN0ZXJzMTYoKSwgbGVuZ3Ro
LCBTdHJpY3RKU09OKTsKKyAgICBMaXRlcmFsUGFyc2VyPFVDaGFyPiBwYXJzZXIoZXhlYywgc3Ry
LmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCBTdHJpY3RKU09OKTsKICAgICByZXR1cm4gdG9SZWYoZXhl
YywgcGFyc2VyLnRyeUxpdGVyYWxQYXJzZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKaW5kZXggYjBhNjkxMTkzOWRiYTkyOTEwY2Q5
NmJjMWRlZjY5YmU5YTE1YjEyNy4uNWM2MGIxZjRlODMyZDQyNjk2MTY0MDI5ZTNmMjMxZGU5MTYw
NmJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdFZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUu
Y3BwCkBAIC0xMTUsOCArMTE1LDEwIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVl
PiBqc1RvSW5zcGVjdG9yVmFsdWUoRXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgSlNWCiAgICAgICAg
IHJldHVybiBJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUuYXNCb29sZWFuKCkpOwog
ICAgIGlmICh2YWx1ZS5pc051bWJlcigpKQogICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFzaWNW
YWx1ZTo6Y3JlYXRlKHZhbHVlLmFzTnVtYmVyKCkpOwotICAgIGlmICh2YWx1ZS5pc1N0cmluZygp
KQotICAgICAgICByZXR1cm4gSW5zcGVjdG9yU3RyaW5nOjpjcmVhdGUodmFsdWUuZ2V0U3RyaW5n
KHNjcmlwdFN0YXRlKSk7CisgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKKyAgICAgICAgU3Ry
aW5nIHMgPSB2YWx1ZS5nZXRTdHJpbmcoc2NyaXB0U3RhdGUpOworICAgICAgICByZXR1cm4gSW5z
cGVjdG9yU3RyaW5nOjpjcmVhdGUoU3RyaW5nKHMuY2hhcmFjdGVycygpLCBzLmxlbmd0aCgpKSk7
CisgICAgfQogCiAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGlzSlNB
cnJheSh2YWx1ZSkpIHsKQEAgLTEzNiwxMSArMTM4LDEzIEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvclZhbHVlPiBqc1RvSW5zcGVjdG9yVmFsdWUoRXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwg
SlNWCiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKICAgICAg
ICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhzY3JpcHRTdGF0ZSk7CiAgICAgICAg
IG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHNjcmlw
dFN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKLSAgICAg
ICAgZm9yIChhdXRvJiBuYW1lIDogcHJvcGVydHlOYW1lcykgewotICAgICAgICAgICAgUmVmUHRy
PEluc3BlY3RvclZhbHVlPiBpbnNwZWN0b3JWYWx1ZSA9IGpzVG9JbnNwZWN0b3JWYWx1ZShzY3Jp
cHRTdGF0ZSwgb2JqZWN0LT5nZXQoc2NyaXB0U3RhdGUsIG5hbWUpLCBtYXhEZXB0aCk7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5zaXplKCk7IGkrKykgewor
ICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSA9ICBwcm9wZXJ0eU5hbWVzW2ldOwor
ICAgICAgICAgICAgSlNWYWx1ZSBwcm9wZXJ0eVZhbHVlID0gb2JqZWN0LT5nZXQoc2NyaXB0U3Rh
dGUsIG5hbWUpOworICAgICAgICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBpbnNwZWN0b3JW
YWx1ZSA9IGpzVG9JbnNwZWN0b3JWYWx1ZShzY3JpcHRTdGF0ZSwgcHJvcGVydHlWYWx1ZSwgbWF4
RGVwdGgpOwogICAgICAgICAgICAgaWYgKCFpbnNwZWN0b3JWYWx1ZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIGluc3BlY3Rvck9iamVjdC0+c2V0VmFsdWUo
bmFtZS5zdHJpbmcoKSwgaW5zcGVjdG9yVmFsdWUpOworICAgICAgICAgICAgaW5zcGVjdG9yT2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmcobmFtZS5jaGFyYWN0ZXJzKCksIG5hbWUubGVuZ3RoKCkpLCBp
bnNwZWN0b3JWYWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGluc3BlY3Rvck9iamVj
dDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclZhbHVlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclZhbHVlcy5jcHAKaW5kZXggNzFiM2VhNDQ3YjhhYThlOTJjMDkwODg1NDVlNzM0ZDU5NWIy
NDk0Yy4uMjExZGFjZDllYjdkZDQxNzljNTYzNGM0NmVjMTRhZTQ0OGE0Y2JiNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmNwcApA
QCAtNDQ2LDE3ICs0NDYsMTQgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gYnVpbGRWYWx1
ZShjb25zdCBVQ2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIGNvbnMKIAogaW5saW5lIGJv
b2wgZXNjYXBlQ2hhcihVQ2hhciBjLCBTdHJpbmdCdWlsZGVyKiBkc3QpCiB7Ci0gICAgLy8gTXVz
dCBlc2NhcGUgPCBhbmQgPiB0byBwcmV2ZW50IHNjcmlwdCBleGVjdXRpb24uCiAgICAgc3dpdGNo
IChjKSB7Ci0gICAgY2FzZSAnXGInOiBkc3QtPmFwcGVuZExpdGVyYWwoIlxcYiIpOyBicmVhazsK
LSAgICBjYXNlICdcZic6IGRzdC0+YXBwZW5kTGl0ZXJhbCgiXFxmIik7IGJyZWFrOwotICAgIGNh
c2UgJ1xuJzogZHN0LT5hcHBlbmRMaXRlcmFsKCJcXG4iKTsgYnJlYWs7Ci0gICAgY2FzZSAnXHIn
OiBkc3QtPmFwcGVuZExpdGVyYWwoIlxcciIpOyBicmVhazsKLSAgICBjYXNlICdcdCc6IGRzdC0+
YXBwZW5kTGl0ZXJhbCgiXFx0Iik7IGJyZWFrOwotICAgIGNhc2UgJ1xcJzogZHN0LT5hcHBlbmRM
aXRlcmFsKCJcXFxcIik7IGJyZWFrOwotICAgIGNhc2UgJyInOiBkc3QtPmFwcGVuZExpdGVyYWwo
IlxcXCIiKTsgYnJlYWs7Ci0gICAgY2FzZSAnPCc6IGRzdC0+YXBwZW5kTGl0ZXJhbCgiXFx1MDAz
QyIpOyBicmVhazsKLSAgICBjYXNlICc+JzogZHN0LT5hcHBlbmRMaXRlcmFsKCJcXHUwMDNFIik7
IGJyZWFrOworICAgIGNhc2UgJ1xiJzogZHN0LT5hcHBlbmQoIlxcYiIsIDIpOyBicmVhazsKKyAg
ICBjYXNlICdcZic6IGRzdC0+YXBwZW5kKCJcXGYiLCAyKTsgYnJlYWs7CisgICAgY2FzZSAnXG4n
OiBkc3QtPmFwcGVuZCgiXFxuIiwgMik7IGJyZWFrOworICAgIGNhc2UgJ1xyJzogZHN0LT5hcHBl
bmQoIlxcciIsIDIpOyBicmVhazsKKyAgICBjYXNlICdcdCc6IGRzdC0+YXBwZW5kKCJcXHQiLCAy
KTsgYnJlYWs7CisgICAgY2FzZSAnXFwnOiBkc3QtPmFwcGVuZCgiXFxcXCIsIDIpOyBicmVhazsK
KyAgICBjYXNlICciJzogZHN0LT5hcHBlbmQoIlxcXCIiLCAyKTsgYnJlYWs7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2OSwxMyArNDY2LDE1IEBAIGlu
bGluZSB2b2lkIGRvdWJsZVF1b3RlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBTdHJpbmdCdWls
ZGVyKiBkc3QpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytp
KSB7CiAgICAgICAgIFVDaGFyIGMgPSBzdHJbaV07CiAgICAgICAgIGlmICghZXNjYXBlQ2hhcihj
LCBkc3QpKSB7Ci0gICAgICAgICAgICAvLyBXZSBjb3VsZCBmb3JtYXQgYyA+IDEyNiBhcyBVVEYt
OCBpbnN0ZWFkIG9mIGVzY2FwaW5nIHRoZW0uCi0gICAgICAgICAgICBpZiAoYyA+PSAzMiB8fCBj
IDw9IDEyNikKKyAgICAgICAgICAgIGlmIChjIDwgMzIgfHwgYyA+IDEyNiB8fCBjID09ICc8JyB8
fCBjID09ICc+JykgeworICAgICAgICAgICAgICAgIC8vIDEuIEVzY2FwaW5nIDwsID4gdG8gcHJl
dmVudCBzY3JpcHQgZXhlY3V0aW9uLgorICAgICAgICAgICAgICAgIC8vIDIuIFRlY2huaWNhbGx5
LCB3ZSBjb3VsZCBhbHNvIHBhc3MgdGhyb3VnaCBjID4gMTI2IGFzIFVURjgsIGJ1dCB0aGlzCisg
ICAgICAgICAgICAgICAgLy8gICAgaXMgYWxzbyBvcHRpb25hbC4gIEl0IHdvdWxkIGFsc28gYmUg
YSBwYWluIHRvIGltcGxlbWVudCBoZXJlLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
eW1ib2wgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGMpOworICAgICAgICAgICAgICAgIFN0
cmluZyBzeW1ib2xDb2RlID0gU3RyaW5nOjpmb3JtYXQoIlxcdSUwNFgiLCBzeW1ib2wpOworICAg
ICAgICAgICAgICAgIGRzdC0+YXBwZW5kKHN5bWJvbENvZGUuY2hhcmFjdGVycygpLCBzeW1ib2xD
b2RlLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGRzdC0+
YXBwZW5kKGMpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdheSB0b28gc2xvdyB0byBkbyB0aGlzIGJ5IGNyZWF0aW5nIGFuZCBkZXN0cm95aW5nIGEgc3Ry
aW5nIGVhY2ggdGltZS4KLSAgICAgICAgICAgICAgICBkc3QtPmFwcGVuZChTdHJpbmc6OmZvcm1h
dCgiXFx1JTA0WCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjKSkpOwotICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogICAgIGRzdC0+YXBwZW5kKCciJyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDM1OGYxNTZjODRjOTMw
NWY1NDQ4ZmE5ZWFkZDQ3NTM5YjhjMjYxMDkuLmMyYjhhMGM3N2YyNGRhY2FjMjZmN2E4MTc1MDFl
ZGQ4ZWE3OTdmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwCkBAIC0xNjIsMTQgKzE2MiwzMyBAQCBzdGF0aWMgSlNDZWxsKiBmb3JtYXRM
b2NhbGVEYXRlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZUluc3RhbmNlKiwgZG91YmxlIHRpbWVJbk1p
bAogICAgIGVsc2UgaWYgKGZvcm1hdCAhPSBMb2NhbGVEYXRlICYmICFleGVjLT5hcmd1bWVudCgw
KS5pc1VuZGVmaW5lZCgpKQogICAgICAgICB0aW1lU3R5bGUgPSBzdHlsZUZyb21BcmdTdHJpbmco
YXJnMFN0cmluZywgdGltZVN0eWxlKTsKIAotICAgIFJldGFpblB0cjxDRkRhdGVGb3JtYXR0ZXJS
ZWY+IGZvcm1hdHRlciA9IGFkb3B0Q0YoQ0ZEYXRlRm9ybWF0dGVyQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKS5nZXQoKSwgZGF0ZVN0eWxl
LCB0aW1lU3R5bGUpKTsKKyAgICBDRkxvY2FsZVJlZiBsb2NhbGUgPSBDRkxvY2FsZUNvcHlDdXJy
ZW50KCk7CisgICAgQ0ZEYXRlRm9ybWF0dGVyUmVmIGZvcm1hdHRlciA9IENGRGF0ZUZvcm1hdHRl
ckNyZWF0ZSgwLCBsb2NhbGUsIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICBDRlJlbGVhc2Uo
bG9jYWxlKTsKKworICAgIGlmICh1c2VDdXN0b21Gb3JtYXQpIHsKKyAgICAgICAgQ0ZTdHJpbmdS
ZWYgY3VzdG9tRm9ybWF0Q0ZTdHJpbmcgPSBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IGN1c3RvbUZvcm1hdFN0cmluZy5jaGFyYWN0ZXJzKCksIGN1c3RvbUZvcm1hdFN0cmluZy5sZW5n
dGgoKSk7CisgICAgICAgIENGRGF0ZUZvcm1hdHRlclNldEZvcm1hdChmb3JtYXR0ZXIsIGN1c3Rv
bUZvcm1hdENGU3RyaW5nKTsKKyAgICAgICAgQ0ZSZWxlYXNlKGN1c3RvbUZvcm1hdENGU3RyaW5n
KTsKKyAgICB9CisKKyAgICBDRlN0cmluZ1JlZiBzdHJpbmcgPSBDRkRhdGVGb3JtYXR0ZXJDcmVh
dGVTdHJpbmdXaXRoQWJzb2x1dGVUaW1lKDAsIGZvcm1hdHRlciwgZmxvb3IodGltZUluTWlsbGlz
ZWNvbmRzIC8gbXNQZXJTZWNvbmQpIC0ga0NGQWJzb2x1dGVUaW1lSW50ZXJ2YWxTaW5jZTE5NzAp
OwogCi0gICAgaWYgKHVzZUN1c3RvbUZvcm1hdCkKLSAgICAgICAgQ0ZEYXRlRm9ybWF0dGVyU2V0
Rm9ybWF0KGZvcm1hdHRlci5nZXQoKSwgY3VzdG9tRm9ybWF0U3RyaW5nLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCkpOworICAgIENGUmVsZWFzZShmb3JtYXR0ZXIpOwogCi0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBzdHJpbmcgPSBhZG9wdENGKENGRGF0ZUZvcm1hdHRlckNyZWF0ZVN0cmluZ1dp
dGhBYnNvbHV0ZVRpbWUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZm9ybWF0dGVyLmdldCgpLCBmbG9v
cih0aW1lSW5NaWxsaXNlY29uZHMgLyBtc1BlclNlY29uZCkgLSBrQ0ZBYnNvbHV0ZVRpbWVJbnRl
cnZhbFNpbmNlMTk3MCkpOworICAgIC8vIFdlIHRydW5jYXRlIHRoZSBzdHJpbmcgcmV0dXJuZWQg
ZnJvbSBDRkRhdGVGb3JtYXR0ZXIgaWYgaXQncyBhYnN1cmRseSBsb25nICg+IDIwMCBjaGFyYWN0
ZXJzKS4KKyAgICAvLyBUaGF0J3Mgbm90IGdyZWF0IGVycm9yIGhhbmRsaW5nLCBidXQgaXQganVz
dCB3b24ndCBoYXBwZW4gc28gaXQgZG9lc24ndCBtYXR0ZXIuCisgICAgVUNoYXIgYnVmZmVyWzIw
MF07CisgICAgY29uc3Qgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IFdURl9BUlJBWV9MRU5HVEgoYnVm
ZmVyKTsKKyAgICBzaXplX3QgbGVuZ3RoID0gQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKTsKKyAg
ICBBU1NFUlQobGVuZ3RoIDw9IGJ1ZmZlckxlbmd0aCk7CisgICAgaWYgKGxlbmd0aCA+IGJ1ZmZl
ckxlbmd0aCkKKyAgICAgICAgbGVuZ3RoID0gYnVmZmVyTGVuZ3RoOworICAgIENGU3RyaW5nR2V0
Q2hhcmFjdGVycyhzdHJpbmcsIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlcik7CiAKLSAg
ICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIHN0cmluZy5nZXQoKSk7CisgICAgQ0ZS
ZWxlYXNlKHN0cmluZyk7CisKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIFN0
cmluZyhidWZmZXIsIGxlbmd0aCkpOwogfQogCiAjZWxpZiBVU0UoSUNVX1VOSUNPREUpICYmICFV
Q09ORklHX05PX0ZPUk1BVFRJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50
aWZpZXIuaAppbmRleCA4MWQ0YjM4OTBmZTVlNzIzOTMwMTk4Y2YwY2I3MDNiMjkwZGNhYjMyLi4w
YWJiNTI3MjgwZjYwYTJhZGUzMzFmM2ZlNjJlYWUxZGM3OTE1OGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1f
c3RyaW5nOyB9CiAgICAgICAgIFN0cmluZ0ltcGwqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX3N0
cmluZy5pbXBsKCk7IH0KICAgICAgICAgCisgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcuY2hhcmFjdGVycygpOyB9CiAgICAgICAgIGludCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsgfQogICAgICAgICAKICAg
ICAgICAgQ1N0cmluZyBhc2NpaSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmFzY2lpKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgKaW5k
ZXggNjFjOTU3Yjc4ZDc0YTQyYzgyODkzZDdjM2M4MmI5ODMwNjcxMDA1NC4uNWQ0OTYwZTg5OTUz
ODVlMjQ4ODU4YTBjOWE3ZWI0ZjAyYTgwMGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB1cENvbnZlcnQoKTsKICAgICAgICAgfQotICAg
ICAgICBtX29rYXkgJj0gYnVmZmVyMTYudHJ5QXBwZW5kKHN0ci5jaGFyYWN0ZXJzMTYoKSwgbGVu
Z3RoKTsKKyAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjE2LnRyeUFwcGVuZChzdHIuY2hhcmFjdGVy
cygpLCBsZW5ndGgpOwogICAgIH0KIAogICAgIHZvaWQgdXBDb252ZXJ0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuY3BwCmluZGV4IDM0Nzk0MjU4YzMwNzc1ZjJmMDkzOWJjMTljNTViNDYwODQ1
NWZiNzkuLmZlODIxM2NmYjdhYmZmODFhMmE4M2VmODY5YmRmYzI3NjBhN2QxNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgUGFzc1JlZjxTdHJp
bmdJbXBsPiBTdHJpbmdJbXBsOjpyZXBsYWNlKHVuc2lnbmVkIHBvc2l0aW9uLCB1bnNpZ25lZCBs
ZW5ndGhUb1JlcGwKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aCgpIC0g
cG9zaXRpb24gLSBsZW5ndGhUb1JlcGxhY2U7ICsraSkKICAgICAgICAgICAgIGRhdGFbaSArIHBv
c2l0aW9uICsgbGVuZ3RoVG9JbnNlcnRdID0gbV9kYXRhOFtpICsgcG9zaXRpb24gKyBsZW5ndGhU
b1JlcGxhY2VdOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1lbWNweShkYXRhICsgcG9zaXRpb24g
KyBsZW5ndGhUb0luc2VydCwgY2hhcmFjdGVyczE2KCkgKyBwb3NpdGlvbiArIGxlbmd0aFRvUmVw
bGFjZSwKKyAgICAgICAgbWVtY3B5KGRhdGEgKyBwb3NpdGlvbiArIGxlbmd0aFRvSW5zZXJ0LCBj
aGFyYWN0ZXJzKCkgKyBwb3NpdGlvbiArIGxlbmd0aFRvUmVwbGFjZSwKICAgICAgICAgICAgIChs
ZW5ndGgoKSAtIHBvc2l0aW9uIC0gbGVuZ3RoVG9SZXBsYWNlKSAqIHNpemVvZihVQ2hhcikpOwog
ICAgIH0KICAgICByZXR1cm4gbmV3SW1wbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDlj
OGQ5MTA3ODI1ZjMyNjdlMDFhZWUwZTNmOGQxMzQ3ZDgwYzcwZTIuLmM0MDExYmM4NmViY2JmNmNl
OGJjMmFmYzcxNDg3YzVlNDMyMjEyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNjI1
LDE0ICs2MjUsMTQgQEAgaW5saW5lIGJvb2wgaXNBbGxTcGVjaWFsQ2hhcmFjdGVycyhjb25zdCBD
aGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3QKIHRlbXBsYXRlPGJvb2wgaXNT
cGVjaWFsQ2hhcmFjdGVyKFVDaGFyKT4KIGlubGluZSBib29sIFN0cmluZzo6aXNBbGxTcGVjaWFs
Q2hhcmFjdGVycygpIGNvbnN0CiB7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHRoaXMtPmxlbmd0aCgp
OworICAgIHNpemVfdCBsZW4gPSBsZW5ndGgoKTsKIAotICAgIGlmICghbGVuZ3RoKQorICAgIGlm
ICghbGVuKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChpczhCaXQoKSkKLSAgICAg
ICAgcmV0dXJuIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc1NwZWNpYWxDaGFyYWN0ZXI+
KGNoYXJhY3RlcnM4KCksIGxlbmd0aCk7Ci0gICAgcmV0dXJuIFdURjo6aXNBbGxTcGVjaWFsQ2hh
cmFjdGVyczxpc1NwZWNpYWxDaGFyYWN0ZXI+KGNoYXJhY3RlcnMxNigpLCBsZW5ndGgpOworICAg
ICAgICByZXR1cm4gV1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzU3BlY2lhbENoYXJhY3Rl
ciwgTENoYXI+KGNoYXJhY3RlcnM4KCksIGxlbik7CisgICAgcmV0dXJuIFdURjo6aXNBbGxTcGVj
aWFsQ2hhcmFjdGVyczxpc1NwZWNpYWxDaGFyYWN0ZXIsIFVDaGFyPihjaGFyYWN0ZXJzKCksIGxl
bik7CiB9CiAKIC8vIFN0cmluZ0hhc2ggaXMgdGhlIGRlZmF1bHQgaGFzaCBmb3IgU3RyaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4
IGZmMDUzNmFiODkyMDU3Yzc1OGUxYjg0ODlkOTMwMzMyMTFmYmM5ZmMuLjViNDM4ZjcxM2VhNDVi
Y2Y4MDVkOWY0MGM3ZGIyOTNmNzUzNzlhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC01NDgsOCArNTQ4LDExIEBAIHN0YXRpYyB2
b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBS
b290T2JqZWN0KiByb290CiAgICAgICAgIHJldHVybiBbV2ViU2NyaXB0T2JqZWN0IHNjcmlwdE9i
amVjdEZvckpTT2JqZWN0OnRvUmVmKG9iamVjdCkgb3JpZ2luUm9vdE9iamVjdDpvcmlnaW5Sb290
T2JqZWN0IHJvb3RPYmplY3Q6cm9vdE9iamVjdF07CiAgICAgfQogCi0gICAgaWYgKHZhbHVlLmlz
U3RyaW5nKCkpCi0gICAgICAgIHJldHVybiBhc1N0cmluZyh2YWx1ZSktPnZhbHVlKHJvb3RPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpOworICAgIGlmICh2YWx1ZS5pc1N0cmlu
ZygpKSB7CisgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdSA9IGFzU3RyaW5nKHZh
bHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnM6dS5jaGFyYWN0ZXJzKCkgbGVuZ3RoOnUubGVuZ3RoKCldOworICAgIH0KIAogICAg
IGlmICh2YWx1ZS5pc051bWJlcigpKQogICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldp
dGhEb3VibGU6dmFsdWUuYXNOdW1iZXIoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDQwZTMxYTRhYjkwYTlkMzliOGFlNzU1YTYz
YzBhOGRjNjljMTAyOTYuLjA2OWQ0ZDYxNmFiYmMwYzAwZTQ4N2I3YTY4YzI3M2Y1ZjExNGU3NWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CkBAIC02NjcsOSArNjY3LDEwIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNldE5vZGVB
dHRyaWJ1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBRCiBzdGF0aWMgaW5s
aW5lIGJvb2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7ICsraSkgewotICAgICAg
ICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0W2ldKSkKKyAgICAgICAgaWYgKCFpc1doaXRlc3BhY2Uo
dGV4dC5jaGFyYWN0ZXJzKClbaV0pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
KyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
Q29tbWFuZC5jcHAKaW5kZXggZWQzYzcyYWM3ODA4OWUwNGMyYmUzN2I2NzlmMDI5YjdjYjljMTY5
ZC4uMTAwNjg0OWM5Zjk0OWE1YjU2N2Y4NjUzN2E3Mjg2YjQwMmRkZGY4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgdm9pZCBU
eXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBPcHRpb25zIG8KICAgICBBU1NFUlQoZnJhbWUpOwogCiAgICAgaWYgKCF0ZXh0Lmlz
RW1wdHkoKSkKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLnVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0Fm
ZmVjdGVkQnlFZGl0aW5nKGlzU3BhY2VPck5ld2xpbmUodGV4dFswXSkpOworICAgICAgICBmcmFt
ZS0+ZWRpdG9yKCkudXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcoaXNTcGFj
ZU9yTmV3bGluZSh0ZXh0LmNoYXJhY3RlcnMoKVswXSkpOwogICAgIAogICAgIGluc2VydFRleHQo
ZG9jdW1lbnQsIHRleHQsIGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSwgb3B0aW9ucywg
Y29tcG9zaXRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlVW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5pdHMuY3BwCmlu
ZGV4IGRjNTEwMzc3ZDRkM2IzYzQxMGViMGYzNDlkMDZkM2YyYWQ5NTA1MTMuLmEwNDg5MDE5NWQ3
NzdmYTVmZDc1MThlNDZkMjJhMGRlODViNTA4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVVbml0cy5jcHAKQEAgLTExNDYsMTAgKzExNDYsMTUgQEAgVmlzaWJsZVBvc2l0aW9uIHN0
YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlD
cm9zc2kKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG4tPmlz
VGV4dE5vZGUoKSk7CiAgICAgICAgICAgICB0eXBlID0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcjsKICAgICAgICAgICAgIGlmIChzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkgewot
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gbiA9PSBzdGFydE5vZGUgPyBz
dGQ6Om1heCgwLCBvZmZzZXQpIDogc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
OwotICAgICAgICAgICAgICAgIHNpemVfdCBuZXdsaW5lT2Zmc2V0ID0gdG9SZW5kZXJUZXh0KHIp
LT50ZXh0KCktPnJldmVyc2VGaW5kKCdcbicsIHN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgICAgICAg
ICBpZiAobmV3bGluZU9mZnNldCAhPSBub3RGb3VuZCkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0b1RleHQobiksIG5ld2xpbmVPZmZzZXQgKyAx
KSwgRE9XTlNUUkVBTSk7CisgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNoYXJzID0gdG9S
ZW5kZXJUZXh0KHIpLT5jaGFyYWN0ZXJzKCk7CisgICAgICAgICAgICAgICAgaW50IGkgPSB0b1Jl
bmRlclRleHQociktPnRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpbnQgbyA9IG9mZnNl
dDsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSBzdGFydE5vZGUgJiYgbyA8IGkpCisgICAgICAg
ICAgICAgICAgICAgIGkgPSBzdGQ6Om1heCgwLCBvKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAo
LS1pID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJzW2ldID09ICdcbicpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRv
VGV4dChuKSwgaSArIDEpLCBET1dOU1RSRUFNKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBub2RlID0gbjsKICAgICAgICAgICAgIG9mZnNldCA9IDA7CkBA
IC0xMjIxLDExICsxMjI2LDE1IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJmMsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIg
Y2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KICAgICAgICAgaWYgKHItPmlzVGV4dCgpICYmIHRvUmVu
ZGVyVGV4dChyKS0+aGFzUmVuZGVyZWRUZXh0KCkpIHsKICAgICAgICAgICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG4tPmlzVGV4dE5vZGUoKSk7CisgICAgICAgICAgICBpbnQg
bGVuZ3RoID0gdG9SZW5kZXJUZXh0KHIpLT50ZXh0TGVuZ3RoKCk7CiAgICAgICAgICAgICB0eXBl
ID0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsKICAgICAgICAgICAgIGlmIChz
dHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkgewotICAgICAgICAgICAgICAgIHNpemVfdCBuZXdsaW5l
T2Zmc2V0ID0gdG9SZW5kZXJUZXh0KHIpLT50ZXh0KCktPmZpbmQoJ1xuJywgbiA9PSBzdGFydE5v
ZGUgPyBvZmZzZXQgOiAwKTsKLSAgICAgICAgICAgICAgICBpZiAobmV3bGluZU9mZnNldCAhPSBu
b3RGb3VuZCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbih0b1RleHQobiksIG5ld2xpbmVPZmZzZXQpLCBET1dOU1RSRUFNKTsKKyAgICAgICAgICAg
ICAgICBjb25zdCBVQ2hhciogY2hhcnMgPSB0b1JlbmRlclRleHQociktPmNoYXJhY3RlcnMoKTsK
KyAgICAgICAgICAgICAgICBpbnQgbyA9IG4gPT0gc3RhcnROb2RlID8gb2Zmc2V0IDogMDsKKyAg
ICAgICAgICAgICAgICBmb3IgKGludCBpID0gbzsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChjaGFyc1tpXSA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0b1RleHQobiksIGkpLCBET1dOU1RS
RUFNKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBub2Rl
ID0gbjsKICAgICAgICAgICAgIG9mZnNldCA9IHItPmNhcmV0TWF4T2Zmc2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCmluZGV4IGVhNDUz
ZDhmMTBmMGI5MGYwZmM1OGQ2MDI3ZDIyMTBlNzYwM2I2ODUuLmViYTBhNDUxNWExYWI4MTRlMTI1
OGE1NmRiN2YzMjY0MzdjOGE3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQYXJzZXJJZGlvbXMuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBzdHJpcExlYWRp
bmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgaWYgKHN0
cmluZy5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcyhzdHJpbmcsIHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgpOwogCi0gICAgcmV0
dXJuIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzdHJpbmcsIHN0cmluZy5jaGFy
YWN0ZXJzMTYoKSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdI
VE1MU3BhY2VzKHN0cmluZywgc3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoKTsKIH0KIAogU3Ry
aW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoY29uc3QgRGVjaW1hbCYgbnVtYmVyKQpAQCAtMjY3
LDEyICsyNjcsMTIgQEAgYm9vbCBwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoY29uc3QgU3Ry
aW5nJiBpbnB1dCwgdW5zaWduZWQmIHZhbHVlKQogICAgIC8vIFN0ZXAgMQogICAgIC8vIFN0ZXAg
MgogICAgIHVuc2lnbmVkIGxlbmd0aCA9IGlucHV0Lmxlbmd0aCgpOwotICAgIGlmIChpbnB1dC5p
c051bGwoKSB8fCBpbnB1dC5pczhCaXQoKSkgeworICAgIGlmIChsZW5ndGggJiYgaW5wdXQuaXM4
Qml0KCkpIHsKICAgICAgICAgY29uc3QgTENoYXIqIHN0YXJ0ID0gaW5wdXQuY2hhcmFjdGVyczgo
KTsKICAgICAgICAgcmV0dXJuIHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlckludGVybmFsKHN0
YXJ0LCBzdGFydCArIGxlbmd0aCwgdmFsdWUpOwogICAgIH0KICAgICAKLSAgICBjb25zdCBVQ2hh
ciogc3RhcnQgPSBpbnB1dC5jaGFyYWN0ZXJzMTYoKTsKKyAgICBjb25zdCBVQ2hhciogc3RhcnQg
PSBpbnB1dC5jaGFyYWN0ZXJzKCk7CiAgICAgcmV0dXJuIHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50
ZWdlckludGVybmFsKHN0YXJ0LCBzdGFydCArIGxlbmd0aCwgdmFsdWUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCmluZGV4IDJjMmY4
ODA3N2Y3YzM4NmY1OWNmMTk0NGJiNjFhZGZmMjlmNmQyYzUuLmU5ZGQwNzBmMTUyYmI4MzY5MDU1
M2MyZmZkNzdhNTBjNzc5Yzk0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b250ZW50U2VhcmNoVXRpbHMuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSA8aW5zcGVj
dG9yL0luc3BlY3RvclZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9CdW1wUG9pbnRlckFsbG9jYXRv
ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8eWFyci9ZYXJyLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBJbnNwZWN0b3I7CkBAIC01MSwxMyArNTAsMTcgQEAgc3RhdGljIGNvbnN0IGNoYXIgcmVnZXhT
cGVjaWFsQ2hhcmFjdGVyc1tdID0gIltdKCl7fSstKi4sP1xcXiR8IjsKIAogc3RhdGljIFN0cmlu
ZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0gICAgU3Ry
aW5nQnVpbGRlciByZXN1bHQ7CisgICAgU3RyaW5nIHJlc3VsdDsKKyAgICBjb25zdCBVQ2hhciog
Y2hhcmFjdGVycyA9IHRleHQuY2hhcmFjdGVycygpOworICAgIFN0cmluZyBzcGVjaWFscyhyZWdl
eFNwZWNpYWxDaGFyYWN0ZXJzKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0ZXh0
Lmxlbmd0aCgpOyBpKyspIHsKLSAgICAgICAgaWYgKGlzQVNDSUkodGV4dFtpXSkgJiYgc3RyY2hy
KHJlZ2V4U3BlY2lhbENoYXJhY3RlcnMsIHRleHRbaV0pKQotICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXFwnKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0W2ldKTsKKyAgICAgICAgaWYg
KHNwZWNpYWxzLmZpbmQoY2hhcmFjdGVyc1tpXSkgIT0gbm90Rm91bmQpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJcXCIpOworICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3RlcnNbaV0p
OwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBzaXpldEV4dHJhY3Rvcihjb25zdCBzaXpl
X3QqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IDNlOWE4NjAxZDA5ZjM4OTJmODUzOWYzYzgyMDM3ZWU5N2E2NjMxMDYu
LmNhYTQ0Y2U3ZWJlYjU1YmQ4NjkyODBlNWRhNjFlODY1ZWQ5OTI2NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTcyMywxMyAr
NzIzLDE0IEBAIE5ld0xpbmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0b3JTdHlsZTo6bmV3TGluZUFu
ZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKCkgY29uc3QKICAgICBpbnQgcHJvcGVydHlJbmRleCA9IDA7
CiAgICAgYm9vbCBpc0Z1bGxQcmVmaXhTY2FubmVkID0gZmFsc2U7CiAgICAgYm9vbCBsaW5lRmVl
ZFRlcm1pbmF0ZWQgPSBmYWxzZTsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHRleHQu
Y2hhcmFjdGVycygpOwogICAgIHdoaWxlIChwcm9wZXJ0eUluZGV4IDwgcHJvcGVydHlDb3VudCkg
ewogICAgICAgICBjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eVNvdXJjZURhdGEmIGN1cnJlbnRQ
cm9wZXJ0eSA9IHNvdXJjZVByb3BlcnR5RGF0YS0+YXQocHJvcGVydHlJbmRleCsrKTsKIAogICAg
ICAgICBib29sIHByb2Nlc3NOZXh0UHJvcGVydHkgPSBmYWxzZTsKICAgICAgICAgaW50IHNjYW5F
bmQgPSBjdXJyZW50UHJvcGVydHkucmFuZ2Uuc3RhcnQ7CiAgICAgICAgIGZvciAoaW50IGkgPSBz
Y2FuU3RhcnQ7IGkgPCBzY2FuRW5kOyArK2kpIHsKLSAgICAgICAgICAgIFVDaGFyIGNoID0gdGV4
dFtpXTsKKyAgICAgICAgICAgIFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKICAgICAgICAgICAg
IGJvb2wgaXNMaW5lRmVlZCA9IGlzSFRNTExpbmVCcmVhayhjaCk7CiAgICAgICAgICAgICBpZiAo
aXNMaW5lRmVlZCkgewogICAgICAgICAgICAgICAgIGlmICghbGluZUZlZWRUZXJtaW5hdGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVk
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRp
dG9yLmNwcAppbmRleCAzY2U1Y2I2MmUwNzNkNjA3NTVmOThkMGM5OGMwYjZmMGUyYTkzZGEzLi5m
MzA5OWE4NDNlMTc5MzQzZTE4MjY1OWJkOTQ1MzNiNTcxODk2ZGVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcApAQCAt
ODIsMTAgKzgyLDEyIEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjppbnNlcnRQcm9w
ZXJ0eSh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wCiAgICAgaWYgKGluc2VydExh
c3QgJiYgIWluc2VydEZpcnN0SW5Tb3VyY2UpIHsKICAgICAgICAgcHJvcGVydHlTdGFydCA9IHN0
eWxlQm9keUxlbmd0aDsKICAgICAgICAgaWYgKHByb3BlcnR5U3RhcnQgJiYgdGV4dFRvU2V0Lmxl
bmd0aCgpKSB7CisgICAgICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IG1fc3R5bGVU
ZXh0LmNoYXJhY3RlcnMoKTsKKwogICAgICAgICAgICAgbG9uZyBjdXJQb3MgPSBwcm9wZXJ0eVN0
YXJ0IC0gMTsgLy8gVGhlIGxhc3QgcG9zaXRpb24gb2Ygc3R5bGUgZGVjbGFyYXRpb24sIHNpbmNl
IHByb3BlcnR5U3RhcnQgcG9pbnRzIHBhc3Qgb25lLgotICAgICAgICAgICAgd2hpbGUgKGN1clBv
cyAmJiBpc0hUTUxTcGFjZShtX3N0eWxlVGV4dFtjdXJQb3NdKSkKKyAgICAgICAgICAgIHdoaWxl
IChjdXJQb3MgJiYgaXNIVE1MU3BhY2UoY2hhcmFjdGVyc1tjdXJQb3NdKSkKICAgICAgICAgICAg
ICAgICAtLWN1clBvczsKLSAgICAgICAgICAgIGlmIChjdXJQb3MgJiYgbV9zdHlsZVRleHRbY3Vy
UG9zXSAhPSAnOycpIHsKKyAgICAgICAgICAgIGlmIChjdXJQb3MgJiYgY2hhcmFjdGVyc1tjdXJQ
b3NdICE9ICc7JykgewogICAgICAgICAgICAgICAgIC8vIFByZXBlbmQgYSAiOyIgdG8gdGhlIHBy
b3BlcnR5IHRleHQgaWYgYXBwZW5kaW5nIHRvIGEgc3R5bGUgZGVjbGFyYXRpb24gd2hlcmUKICAg
ICAgICAgICAgICAgICAvLyB0aGUgbGFzdCBwcm9wZXJ0eSBoYXMgbm8gdHJhaWxpbmcgIjsiLgog
ICAgICAgICAgICAgICAgIHRleHRUb1NldC5pbnNlcnQoIjsiLCAwKTsKQEAgLTIyOCw2ICsyMzAs
NyBAQCB2b2lkIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6aW50ZXJuYWxSZXBsYWNlUHJvcGVy
dHkoY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZQogICAgIGNvbnN0IFNvdXJjZVJhbmdlJiByYW5n
ZSA9IHByb3BlcnR5LnNvdXJjZURhdGEucmFuZ2U7CiAgICAgbG9uZyByZXBsYWNlUmFuZ2VTdGFy
dCA9IHJhbmdlLnN0YXJ0OwogICAgIGxvbmcgcmVwbGFjZVJhbmdlRW5kID0gcmFuZ2UuZW5kOwor
ICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gbV9zdHlsZVRleHQuY2hhcmFjdGVycygpOwog
ICAgIGxvbmcgbmV3VGV4dExlbmd0aCA9IG5ld1RleHQubGVuZ3RoKCk7CiAgICAgU3RyaW5nIGZp
bmFsTmV3VGV4dCA9IG5ld1RleHQ7CiAKQEAgLTIzOCwxNCArMjQxLDE0IEBAIHZvaWQgSW5zcGVj
dG9yU3R5bGVUZXh0RWRpdG9yOjppbnRlcm5hbFJlcGxhY2VQcm9wZXJ0eShjb25zdCBJbnNwZWN0
b3JTdHlsZVByb3BlCiAgICAgICAgIGlmIChyZXBsYWNlUmFuZ2VTdGFydCA+PSBmdWxsUHJlZml4
TGVuZ3RoICYmIG1fc3R5bGVUZXh0LnN1YnN0cmluZyhyZXBsYWNlUmFuZ2VTdGFydCAtIGZ1bGxQ
cmVmaXhMZW5ndGgsIGZ1bGxQcmVmaXhMZW5ndGgpID09IGZ1bGxQcmVmaXgpCiAgICAgICAgICAg
ICByZXBsYWNlUmFuZ2VTdGFydCAtPSBmdWxsUHJlZml4TGVuZ3RoOwogICAgIH0gZWxzZSBpZiAo
bmV3VGV4dExlbmd0aCkgewotICAgICAgICBpZiAoaXNIVE1MTGluZUJyZWFrKG5ld1RleHRbbmV3
VGV4dExlbmd0aCAtIDFdKSkgeworICAgICAgICBpZiAoaXNIVE1MTGluZUJyZWFrKG5ld1RleHQu
Y2hhcmFjdGVycygpW25ld1RleHRMZW5ndGggLSAxXSkpIHsKICAgICAgICAgICAgIC8vIENvYWxl
c2NlIG5ld2xpbmVzIG9mIHRoZSBvcmlnaW5hbCBhbmQgbmV3IHByb3BlcnR5IHZhbHVlcyAodG8g
YXZvaWQgYSBsb3Qgb2YgYmxhbmsgbGluZXMgd2hpbGUgaW5jcmVtZW50YWxseSBhcHBseWluZyBw
cm9wZXJ0eSB2YWx1ZXMpLgogICAgICAgICAgICAgYm9vbCBmb3VuZE5ld2xpbmUgPSBmYWxzZTsK
ICAgICAgICAgICAgIGJvb2wgaXNMYXN0TmV3bGluZSA9IGZhbHNlOwogICAgICAgICAgICAgaW50
IGk7CiAgICAgICAgICAgICBpbnQgdGV4dExlbmd0aCA9IG1fc3R5bGVUZXh0Lmxlbmd0aCgpOwot
ICAgICAgICAgICAgZm9yIChpID0gcmVwbGFjZVJhbmdlRW5kOyBpIDwgdGV4dExlbmd0aCAmJiBp
c1NwYWNlT3JOZXdsaW5lKG1fc3R5bGVUZXh0W2ldKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
aXNMYXN0TmV3bGluZSA9IGlzSFRNTExpbmVCcmVhayhtX3N0eWxlVGV4dFtpXSk7CisgICAgICAg
ICAgICBmb3IgKGkgPSByZXBsYWNlUmFuZ2VFbmQ7IGkgPCB0ZXh0TGVuZ3RoICYmIGlzU3BhY2VP
ck5ld2xpbmUoY2hhcmFjdGVyc1tpXSk7ICsraSkgeworICAgICAgICAgICAgICAgIGlzTGFzdE5l
d2xpbmUgPSBpc0hUTUxMaW5lQnJlYWsoY2hhcmFjdGVyc1tpXSk7CiAgICAgICAgICAgICAgICAg
aWYgKGlzTGFzdE5ld2xpbmUpCiAgICAgICAgICAgICAgICAgICAgIGZvdW5kTmV3bGluZSA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZm91bmROZXdsaW5lICYmICFpc0xhc3ROZXds
aW5lKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAppbmRleCAxN2M0YjE4ZWNkMmEwM2Yw
YzAxMDRjOWVjZDJiZDRmMjVlODEwNmI5Li5iZDZjYzJhZWNhYWZiMmI2NDY2MDZhZDVmM2YzMzNh
MTUzMjhhOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKQEAgLTg4LDkgKzg4LDEw
IEBAIHN0YXRpYyBpbnQgY291bnRDaGFyYWN0ZXIoY29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCwgVUNoYXIgY2hhcmFjdGVyKQogc3RkOjp1bmlxdWVfcHRyPExlbmd0aFtdPiBuZXdD
b29yZHNBcnJheShjb25zdCBTdHJpbmcmIHN0cmluZywgaW50JiBsZW4pCiB7CiAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGNvbnN0IFVDaGFyKiBkYXRhID0gc3Ry
aW5nLmNoYXJhY3RlcnMoKTsKICAgICBTdHJpbmdCdWZmZXI8VUNoYXI+IHNwYWNpZmllZChsZW5n
dGgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAg
ICBVQ2hhciBjYyA9IHN0cmluZ1tpXTsKKyAgICAgICAgVUNoYXIgY2MgPSBkYXRhW2ldOwogICAg
ICAgICBpZiAoY2MgPiAnOScgfHwgKGNjIDwgJzAnICYmIGNjICE9ICctJyAmJiBjYyAhPSAnKicg
JiYgY2MgIT0gJy4nKSkKICAgICAgICAgICAgIHNwYWNpZmllZFtpXSA9ICcgJzsKICAgICAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGlua0hhc2guY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGlua0hhc2guY3BwCmluZGV4IGMwZTQ1Y2VhNDZjNzI3
YWYyM2IwMWMzY2JmMmJiMjU4YWIxMjliYTUuLjJhNDJjODUyNDgwOWJlN2EyODIxYWMzMDhlNzVj
ODM5YmEyOGFmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xpbmtIYXNo
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MaW5rSGFzaC5jcHAKQEAgLTIxNCw5
ICsyMTQsMTAgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgTGlua0hhc2ggdmlzaXRlZExpbmtIYXNo
SW5saW5lKGNvbnN0IENoYXJhY3RlclR5cGUqIHVybCwgdW4KIExpbmtIYXNoIHZpc2l0ZWRMaW5r
SGFzaChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB1cmwubGVu
Z3RoKCk7Ci0gICAgaWYgKHVybC5pc051bGwoKSB8fCB1cmwuaXM4Qml0KCkpCisKKyAgICBpZiAo
bGVuZ3RoICYmIHVybC5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rSGFzaElu
bGluZSh1cmwuY2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKLSAgICByZXR1cm4gdmlzaXRlZExpbmtI
YXNoSW5saW5lKHVybC5jaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gdmlzaXRl
ZExpbmtIYXNoSW5saW5lKHVybC5jaGFyYWN0ZXJzKCksIGxlbmd0aCk7CiB9CiAKIExpbmtIYXNo
IHZpc2l0ZWRMaW5rSGFzaChjb25zdCBVQ2hhciogdXJsLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggOWUzYjVjMTQxYWNh
OTcxYTlkZDkzMDgxODk3YWNjZjE3MzJlMzc4MC4uNTlkMzc1OTVkYjNkZjYyN2E2NmUwOTJhYTEw
ODUwMGJhOTgzZDgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgQ29sb3I6OnBhcnNlSGV4Q29sb3IoY29uc3Qg
U3RyaW5nJiBuYW1lLCBSR0JBMzImIHJnYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChuYW1lLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gcGFyc2VIZXhDb2xvcihuYW1lLmNoYXJh
Y3RlcnM4KCksIG5hbWUubGVuZ3RoKCksIHJnYik7Ci0gICAgcmV0dXJuIHBhcnNlSGV4Q29sb3Io
bmFtZS5jaGFyYWN0ZXJzMTYoKSwgbmFtZS5sZW5ndGgoKSwgcmdiKTsKKyAgICByZXR1cm4gcGFy
c2VIZXhDb2xvcihuYW1lLmNoYXJhY3RlcnMoKSwgbmFtZS5sZW5ndGgoKSwgcmdiKTsKIH0KIAog
aW50IGRpZmZlcmVuY2VTcXVhcmVkKGNvbnN0IENvbG9yJiBjMSwgY29uc3QgQ29sb3ImIGMyKQpA
QCAtMTgyLDcgKzE4Miw3IEBAIENvbG9yOjpDb2xvcihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAg
ICAgIGlmIChuYW1lLmlzOEJpdCgpKQogICAgICAgICAgICAgbV92YWxpZCA9IHBhcnNlSGV4Q29s
b3IobmFtZS5jaGFyYWN0ZXJzOCgpICsgMSwgbmFtZS5sZW5ndGgoKSAtIDEsIG1fY29sb3IpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3ZhbGlkID0gcGFyc2VIZXhDb2xvcihuYW1lLmNo
YXJhY3RlcnMxNigpICsgMSwgbmFtZS5sZW5ndGgoKSAtIDEsIG1fY29sb3IpOworICAgICAgICAg
ICAgbV92YWxpZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5jaGFyYWN0ZXJzKCkgKyAxLCBuYW1lLmxl
bmd0aCgpIC0gMSwgbV9jb2xvcik7CiAgICAgfSBlbHNlCiAgICAgICAgIHNldE5hbWVkQ29sb3Io
bmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKaW5k
ZXggYmIxNzJmNWU3ZjIwMjVkYzhkZGY3YjE0MzBlMzA1YTRlMjNkZGI2Ni4uNTY1NTI1ZmFmNWQ5
NjAyZTc4NDczMjc5NjIzNjRjZTRmNDc0YjIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaApAQCAtMTI0LDExICsxMjQsMTEgQEAgcHVibGljOgogICAgICAg
ICAsIG1fdGFiU2l6ZSgwKQogICAgIHsKICNpZiBFTkFCTEUoOEJJVF9URVhUUlVOKQotICAgICAg
ICBpZiAocy5pc051bGwoKSB8fCBzLmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChtX2NoYXJhY3Rl
cnNMZW5ndGggJiYgcy5pczhCaXQoKSkgewogICAgICAgICAgICAgbV9kYXRhLmNoYXJhY3RlcnM4
ID0gcy5jaGFyYWN0ZXJzOCgpOwogICAgICAgICAgICAgbV9pczhCaXQgPSB0cnVlOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbV9kYXRhLmNoYXJhY3RlcnMxNiA9IHMuY2hhcmFjdGVy
czE2KCk7CisgICAgICAgICAgICBtX2RhdGEuY2hhcmFjdGVyczE2ID0gcy5jaGFyYWN0ZXJzKCk7
CiAgICAgICAgICAgICBtX2lzOEJpdCA9IGZhbHNlOwogICAgICAgICB9CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNw
cAppbmRleCBkYzA3MzE3NjRhOTc5ZTYyZjM4YmU3ZDdjYmE5ZmJmMWRhYWUyMzYwLi44ZGZkMWZk
MjBiOTQ0ZDE3ZTlhY2ZiMzQzZGNiYWQzOTQxZTYwYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcApAQCAtMzQ3LDEz
ICszNDcsMTMgQEAgY29uc3QgY2hhciogYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZShj
b25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCBzaXoKIAogY29uc3QgY2hhciogYXRvbWlj
Q2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZShjb25zdCBTdHJpbmcmIGFsaWFzKQogewotICAgIGlm
IChhbGlhcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghYWxp
YXMubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGFsaWFzLmlzOEJpdCgp
KQogICAgICAgICByZXR1cm4gYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZTxMQ2hhcj4o
YWxpYXMuY2hhcmFjdGVyczgoKSwgYWxpYXMubGVuZ3RoKCkpOwogCi0gICAgcmV0dXJuIGF0b21p
Y0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWU8VUNoYXI+KGFsaWFzLmNoYXJhY3RlcnMxNigpLCBh
bGlhcy5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05h
bWU8VUNoYXI+KGFsaWFzLmNoYXJhY3RlcnMoKSwgYWxpYXMubGVuZ3RoKCkpOwogfQogCiBib29s
IG5vRXh0ZW5kZWRUZXh0RW5jb2RpbmdOYW1lVXNlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAppbmRleCAwODViMTYyZDc1NDU3MWYxYTk3ZjA1ZGYwNzNlYzMzMDc2
YTljN2Q3Li5hMmYzMTU4ZmI1NWYzOGQwNTIzOTJhMDFkNTE0NWUxNTNmZWVmYzlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTU0NzksMTAgKzU0NzksMTEg
QEAgVGV4dFJ1biBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihSZW5kZXJPYmplY3QqIGNv
bnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGMKIFRleHRSdW4gUmVuZGVyQmxvY2s6OmNvbnN0cnVj
dFRleHRSdW4oUmVuZGVyT2JqZWN0KiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBT
dHJpbmcmIHN0cmluZywgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBUZXh0UnVuOjpFeHBhbnNp
b25CZWhhdmlvciBleHBhbnNpb24sIFRleHRSdW5GbGFncyBmbGFncykKIHsKICAgICB1bnNpZ25l
ZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKICNpZiBFTkFCTEUoOEJJVF9URVhUUlVOKQot
ICAgIGlmIChzdHJpbmcuaXNOdWxsKCkgfHwgc3RyaW5nLmlzOEJpdCgpKQorICAgIGlmIChsZW5n
dGggJiYgc3RyaW5nLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bklu
dGVybmFsKGNvbnRleHQsIGZvbnQsIHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgsIHN0eWxl
LCBleHBhbnNpb24sIGZsYWdzKTsKLSAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bkludGVybmFs
KGNvbnRleHQsIGZvbnQsIHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoLCBzdHlsZSwgZXhw
YW5zaW9uLCBmbGFncyk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFRleHRSdW5JbnRlcm5hbChjb250
ZXh0LCBmb250LCBzdHJpbmcuY2hhcmFjdGVycygpLCBsZW5ndGgsIHN0eWxlLCBleHBhbnNpb24s
IGZsYWdzKTsKICNlbHNlCiAgICAgcmV0dXJuIGNvbnN0cnVjdFRleHRSdW5JbnRlcm5hbChjb250
ZXh0LCBmb250LCBzdHJpbmcuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgbGVuZ3RoLCBzdHlsZSwg
ZXhwYW5zaW9uLCBmbGFncyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQ29tYmluZVRleHQuY3BwCmluZGV4IDMwZTI1ZTdjZWQ2MmIyN2FhNDgzODk2OWYzOTJi
MzdhNGE1YTk4NDcuLjdiNTc3YjI4OGZhYWQ3NjlhOTZjMjNhNzViYzNkODc0Y2NhNzZjMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFJlbmRlckNvbWJpbmVUZXh0OjpzZXRUZXh0SW50ZXJuYWwoY29u
c3QgU3RyaW5nJiB0ZXh0KQogCiBmbG9hdCBSZW5kZXJDb21iaW5lVGV4dDo6d2lkdGgodW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBGb250JiBmb250LCBmbG9hdCB4UG9zaXRp
b24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKLSAgICBpZiAoIXRleHRMZW5ndGgoKSkK
KyAgICBpZiAoIWNoYXJhY3RlcnMoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAobV9p
c0NvbWJpbmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAKaW5kZXggOTA4OTA2
YTJjY2M4NDUwNDU0NGRkZjVhN2MxZmU0OGZlMTkzZjk4OS4uOGI5NmU0OWExYzk4MzkwNjE2MmJk
ZGJhYTk2MjQzOWVjN2Y4OWE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3Bw
CkBAIC04NywxMyArODcsMTYgQEAgdm9pZCBTVkdGb250RWxlbWVudDo6cmVnaXN0ZXJMaWdhdHVy
ZXNJbkdseXBoQ2FjaGUoVmVjdG9yPFN0cmluZz4mIGxpZ2F0dXJlcykKICAgICAvLyB3aWxsIG5v
dCBiZSBhYmxlIHRvIGZpbmQgYSBnbHlwaCBmb3IgImYiLCBidXQgaGFuZGxlcyB0aGUgZmFsbGJh
Y2sKICAgICAvLyBjaGFyYWN0ZXIgc3Vic3RpdHV0aW9uIHByb3Blcmx5IHRocm91Z2ggZ2x5cGhE
YXRhRm9yQ2hhcmFjdGVyKCkuCiAgICAgVmVjdG9yPFNWR0dseXBoPiBnbHlwaHM7Ci0gICAgZm9y
IChhdXRvJiBsaWdhdHVyZSA6IGxpZ2F0dXJlcykgewotICAgICAgICB1bnNpZ25lZCBsaWdhdHVy
ZUxlbmd0aCA9IGxpZ2F0dXJlLmxlbmd0aCgpOwotICAgICAgICBBU1NFUlQobGlnYXR1cmVMZW5n
dGggPiAxKTsKKyAgICBzaXplX3QgbGlnYXR1cmVzU2l6ZSA9IGxpZ2F0dXJlcy5zaXplKCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaWdhdHVyZXNTaXplOyArK2kpIHsKKyAgICAgICAg
Y29uc3QgU3RyaW5nJiB1bmljb2RlID0gbGlnYXR1cmVzW2ldOwogCi0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsaWdhdHVyZUxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogSXMgdGhlcmUgYSBmYXN0ZXIgd2F5IHRvIGRvIHRoaXMgd2l0aG91dCBhbGxvY2F0aW5n
L2RlYWxsb2NhdGluZyBhIHN0cmluZyBmb3IgZXZlcnkgY2hhcmFjdGVyIGluIGV2ZXJ5IGxpZ2F0
dXJlPwotICAgICAgICAgICAgU3RyaW5nIGxvb2t1cFN0cmluZyhsaWdhdHVyZS5zdWJzdHJpbmco
aSwgMSkpOworICAgICAgICB1bnNpZ25lZCB1bmljb2RlTGVuZ3RoID0gdW5pY29kZS5sZW5ndGgo
KTsKKyAgICAgICAgQVNTRVJUKHVuaWNvZGVMZW5ndGggPiAxKTsKKworICAgICAgICBjb25zdCBV
Q2hhciogY2hhcmFjdGVycyA9IHVuaWNvZGUuY2hhcmFjdGVycygpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdW5pY29kZUxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJp
bmcgbG9va3VwU3RyaW5nKGNoYXJhY3RlcnMgKyBpLCAxKTsKICAgICAgICAgICAgIG1fZ2x5cGhN
YXAuY29sbGVjdEdseXBoc0ZvclN0cmluZyhsb29rdXBTdHJpbmcsIGdseXBocyk7CiAgICAgICAg
ICAgICBpZiAoIWdseXBocy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBnbHlwaHMuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDQzMjQ0MGFkNDA0
ZmMyMzg3MWY4NDU0MzAzYTFmNDMyODJkNDZiMTQuLjM3YTI3NmYwNzU3NTUzZjI2MzVkMmMzZmU5
ZmE4ZDQ3YWE5M2M5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApAQCAt
MzA3LDE3ICszMDcsMTggQEAgVmFsdWUgRnVuUG9zaXRpb246OmV2YWx1YXRlKCkgY29uc3QKIFZh
bHVlIEZ1bklkOjpldmFsdWF0ZSgpIGNvbnN0CiB7CiAgICAgVmFsdWUgYSA9IGFyZ3VtZW50KDAp
LmV2YWx1YXRlKCk7CisgICAgU3RyaW5nQnVpbGRlciBpZExpc3Q7IC8vIEEgd2hpdGVzcGFjZS1z
ZXBhcmF0ZWQgbGlzdCBvZiBJRHMKIAotICAgIFN0cmluZyBpZExpc3Q7IC8vIEEgd2hpdGVzcGFj
ZS1zZXBhcmF0ZWQgbGlzdCBvZiBJRHMKICAgICBpZiAoYS5pc05vZGVTZXQoKSkgewotICAgICAg
ICBTdHJpbmdCdWlsZGVyIHNwYWNlU2VwYXJhdGVkTGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiBu
b2RlIDogYS50b05vZGVTZXQoKSkgewotICAgICAgICAgICAgc3BhY2VTZXBhcmF0ZWRMaXN0LmFw
cGVuZChzdHJpbmdWYWx1ZShub2RlLmdldCgpKSk7Ci0gICAgICAgICAgICBzcGFjZVNlcGFyYXRl
ZExpc3QuYXBwZW5kKCcgJyk7CisgICAgICAgIGNvbnN0IE5vZGVTZXQmIG5vZGVzID0gYS50b05v
ZGVTZXQoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBub2Rlcy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHN0cmluZ1ZhbHVlKG5vZGVzW2ldKTsKKyAg
ICAgICAgICAgIGlkTGlzdC5hcHBlbmQoc3RyKTsKKyAgICAgICAgICAgIGlkTGlzdC5hcHBlbmQo
JyAnKTsKICAgICAgICAgfQotICAgICAgICBpZExpc3QgPSBzcGFjZVNlcGFyYXRlZExpc3QudG9T
dHJpbmcoKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZExpc3QgPSBhLnRvU3RyaW5nKCk7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBhLnRvU3RyaW5nKCk7CisgICAgICAgIGlkTGlzdC5hcHBlbmQo
c3RyKTsKICAgICB9CiAgICAgCiAgICAgVHJlZVNjb3BlJiBjb250ZXh0U2NvcGUgPSBldmFsdWF0
aW9uQ29udGV4dCgpLm5vZGUtPnRyZWVTY29wZSgpOwpAQCAtMzM5LDcgKzM0MCw3IEBAIFZhbHVl
IEZ1bklkOjpldmFsdWF0ZSgpIGNvbnN0CiAKICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVy
YWwgbm9kZXMgd2l0aCB0aGUgc2FtZSBpZCwgaWQoKSBzaG91bGQgcmV0dXJuIHRoZSBmaXJzdCBv
bmUuCiAgICAgICAgIC8vIEluIFdlYktpdCwgZ2V0RWxlbWVudEJ5SWQgYmVoYXZlcyBzbywgdG9v
LCBhbHRob3VnaCBpdHMgYmVoYXZpb3IgaW4gdGhpcyBjYXNlIGlzIGZvcm1hbGx5IHVuZGVmaW5l
ZC4KLSAgICAgICAgTm9kZSogbm9kZSA9IGNvbnRleHRTY29wZS5nZXRFbGVtZW50QnlJZChpZExp
c3Quc3Vic3RyaW5nKHN0YXJ0UG9zLCBlbmRQb3MgLSBzdGFydFBvcykpOworICAgICAgICBOb2Rl
KiBub2RlID0gY29udGV4dFNjb3BlLmdldEVsZW1lbnRCeUlkKFN0cmluZyhpZExpc3QuY2hhcmFj
dGVycygpICsgc3RhcnRQb3MsIGVuZFBvcyAtIHN0YXJ0UG9zKSk7CiAgICAgICAgIGlmIChub2Rl
ICYmIHJlc3VsdFNldC5hZGQobm9kZSkuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQobm9kZSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoTm9kZVNldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTm9kZVNldC5oCmluZGV4IDky
YjJmMjc3NDY1NDhjZTQxOTQ0NGRkMGYzYmVmM2RlYTIyYWU0NzAuLjQ1OWZjZjNjNDEzZjUxZDEz
NjNmNTE5YTQwOWUzZWJhNDMxODQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aE5vZGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOb2RlU2V0LmgKQEAg
LTQ0LDkgKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgdm9pZCByZXNl
cnZlQ2FwYWNpdHkoc2l6ZV90IG5ld0NhcGFjaXR5KSB7IG1fbm9kZXMucmVzZXJ2ZUNhcGFjaXR5
KG5ld0NhcGFjaXR5KTsgfQogICAgICAgICAgICAgdm9pZCBjbGVhcigpIHsgbV9ub2Rlcy5jbGVh
cigpOyB9CiAKLSAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+Ojpjb25zdF9pdGVyYXRv
ciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZXMuYmVnaW4oKTsgfQotICAgICAgICAgICAg
VmVjdG9yPFJlZlB0cjxOb2RlPj46OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbm9kZXMuZW5kKCk7IH0KLQogICAgICAgICAgICAgLy8gTm9kZVNldCBpdHNlbGYgZG9lcyBu
b3QgdmVyaWZ5IHRoYXQgbm9kZXMgaW4gaXQgYXJlIHVuaXF1ZS4KICAgICAgICAgICAgIHZvaWQg
YXBwZW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyBtX25vZGVzLmFwcGVuZChub2RlKTsgfQog
ICAgICAgICAgICAgdm9pZCBhcHBlbmQoY29uc3QgTm9kZVNldCYgbm9kZVNldCkgeyBtX25vZGVz
LmFwcGVuZFZlY3Rvcihub2RlU2V0Lm1fbm9kZXMpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>