<?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>163448</bug_id>
          
          <creation_ts>2016-10-14 09:18:13 -0700</creation_ts>
          <short_desc>REGRESSION(r207317): This change caused an existing LayoutTest to fail on all platforms (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-10-14 09:20:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>163423</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>dino</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1240298</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-14 09:18:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/207317 broke the build:
This change caused an existing LayoutTest to fail on all platforms (Requested by ryanhaddad 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>1240300</commentid>
    <comment_count>1</comment_count>
      <attachid>291640</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-14 09:18:51 -0700</bug_when>
    <thetext>Created attachment 291640
ROLLOUT of r207317

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>1240302</commentid>
    <comment_count>2</comment_count>
      <attachid>291640</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-14 09:20:27 -0700</bug_when>
    <thetext>Comment on attachment 291640
ROLLOUT of r207317

Clearing flags on attachment: 291640

Committed r207342: &lt;http://trac.webkit.org/changeset/207342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240303</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-14 09:20:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291640</attachid>
            <date>2016-10-14 09:18:51 -0700</date>
            <delta_ts>2016-10-14 09:20:27 -0700</delta_ts>
            <desc>ROLLOUT of r207317</desc>
            <filename>bug-163448-20161014091523.patch</filename>
            <type>text/plain</type>
            <size>56819</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlhZjNiYWNiNTA5NmYz
MjNlZTZiNzIxOGZiNjcxNmI3MGEwNGIxZi4uNGM5ZDkzODMxZTAxZDQwMzYwMzNlMWUyMGFhMTY0
Nzk2ZGQxMzlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEwLTE0ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjA3MzE3LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYzNDQ4CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2F1c2VkIGFuIGV4
aXN0aW5nIExheW91dFRlc3QgdG8gZmFpbCBvbiBhbGwKKyAgICAgICAgcGxhdGZvcm1zIChSZXF1
ZXN0ZWQgYnkgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFu
Z2VzZXQ6CisKKyAgICAgICAgIkNTUyBwYXJzaW5nIHNob3VsZCB1c2UgQ29sb3Igbm90IFJHQkEz
MiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQy
MworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMDczMTcKKwogMjAx
Ni0xMC0xNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hh
cmUgaW5saW5lIHN0eWxlc2hlZXRzIGJldHdlZW4gc2hhZG93IHRyZWVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYThjNjJiYjg0
ODM3MTMzZmMyNWRlNWU2OGI3NzUyNTNjZjhmMDQzYi4uY2IyMmE1YTg0YzAyN2RmMDIwN2ZiY2M4
NjZjM2I0NzlhZWY1NDRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5Nyw3ICsxMjk3LDYgQEAKIAkJMkVGMUJGRUExMjFD
OUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJl
YW0uY3BwICovOyB9OwogCQkyRUYxQkZFQjEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGMUJGRTkx
MjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRUYxQkZGOTEyMUNCMENFMDBDMjc2MjcgLyogRmls
ZVN0cmVhbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVGMUJGRjgxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzMTAzQjdERjFE
QjAxNTY3MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTAzQjdERTFEQjAxNTU2MDA4QkI4OTAgLyogQ29sb3JIYXNo
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzEw
NjAzNkYxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDYwMzZDMTQzMjdEMkUw
MEFCRjRCQSAvKiBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgKi87IH07CiAJCTMxMDYwMzcwMTQz
MjdEMkUwMEFCRjRCQSAvKiBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwNjAzNkQxNDMyN0QyRTAwQUJGNEJBIC8q
IFdlYktpdENTU0ZpbHRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMzEwNjAzNzQxNDMyODE5QzAwQUJGNEJBIC8qIEpTV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzEwNjAzNzIxNDMyODE5QzAwQUJGNEJBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUu
Y3BwICovOyB9OwpAQCAtODI2Miw3ICs4MjYxLDYgQEAKIAkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3
NjI3IC8qIEZpbGVTdHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRmlsZVN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRjFCRkU5
MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVG
MUJGRjgxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN0cmVhbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkzMTAzQjdERTFEQjAxNTU2MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbG9ySGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTA2MDM2QzE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA2MDM2RDE0MzI3RDJFMDBBQkY0QkEg
LyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzEwNjAzNkUxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDczNiw3ICsyMDczNCw2IEBACiAJCQkJQ0RERTAyRTkxOEIz
REZDNzAwQ0Y3RkYxIC8qIENETVNlc3Npb24uaCAqLywKIAkJCQlCMjc1MzUzODBCMDUzODE0MDAy
Q0U2NEYgLyogQ29sb3IuY3BwICovLAogCQkJCUIyNzUzNTM5MEIwNTM4MTQwMDJDRTY0RiAvKiBD
b2xvci5oICovLAotCQkJCTMxMDNCN0RFMURCMDE1NTYwMDhCQjg5MCAvKiBDb2xvckhhc2guaCAq
LywKIAkJCQkzMURDREY0MTFEQTFDNDU0MDBFQTVCOTMgLyogRXh0ZW5kZWRDb2xvci5jcHAgKi8s
CiAJCQkJMzFEQ0RGNDIxREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3IuaCAqLywKIAkJ
CQk5MzgyREY1NzEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JTcGFjZS5oICovLApAQCAtMjUzODks
NyArMjUzODYsNiBAQAogCQkJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQ0UxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0
UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAwRkRG
QUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMzEwM0I3REYxREIwMTU2NzAwOEJCODkwIC8qIENvbG9ySGFzaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUJEQTY0RDgxQjk3NUNGMjAwOUM0Mzg3IC8qIEpTU2hhZG93Um9vdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3RDE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VC
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCmluZGV4IDk4NzcxM2M5MWFmOTVkYWU4NTk3OGRhYTIwNDUwMzFlZmE4YzY4NWUu
LjE2OGM5NDI4ODkxMTI2MmY1NTBjMDNjNWU5ZjU2ZTkyY2E0OTMxMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMzUwLDExICszNTAsMTEgQEAgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBVbml0
VHlwZXMgdHlwZSkKICAgICAgICAgbV92YWx1ZS5zdHJpbmctPnJlZigpOwogfQogCi1DU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgQ29sb3ImIGNvbG9yKQorQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJHQkEzMiBjb2xvcikKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewogICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfUkdC
Q09MT1I7Ci0gICAgbV92YWx1ZS5jb2xvciA9IG5ldyBDb2xvcihjb2xvcik7CisgICAgbV92YWx1
ZS5yZ2Jjb2xvciA9IGNvbG9yOwogfQogCiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoY29uc3QgTGVuZ3RoJiBsZW5ndGgpCkBAIC01NzQsMTEgKzU3NCw2IEBAIHZvaWQgQ1NT
UHJpbWl0aXZlVmFsdWU6OmNsZWFudXAoKQogICAgICAgICBkZWxldGUgbV92YWx1ZS5mb250RmFt
aWx5OwogICAgICAgICBtX3ZhbHVlLmZvbnRGYW1pbHkgPSBudWxscHRyOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIENTU19SR0JDT0xPUjoKLSAgICAgICAgQVNTRVJUKG1fdmFsdWUuY29sb3Ip
OwotICAgICAgICBkZWxldGUgbV92YWx1ZS5jb2xvcjsKLSAgICAgICAgbV92YWx1ZS5jb2xvciA9
IG51bGxwdHI7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTX05VTUJFUjoKICAgICBjYXNl
IENTU19QQVJTRVJfSU5URUdFUjoKICAgICBjYXNlIENTU19QRVJDRU5UQUdFOgpAQCAtNjEwLDYg
KzYwNSw3IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNsZWFudXAoKQogICAgIGNhc2UgQ1NT
X0RQQ006CiAgICAgY2FzZSBDU1NfRlI6CiAgICAgY2FzZSBDU1NfSURFTlQ6CisgICAgY2FzZSBD
U1NfUkdCQ09MT1I6CiAgICAgY2FzZSBDU1NfVU5LTk9XTjoKICAgICBjYXNlIENTU19VTklDT0RF
X1JBTkdFOgogICAgIGNhc2UgQ1NTX1BBUlNFUl9PUEVSQVRPUjoKQEAgLTEwMzIsNyArMTAyOCw3
IEBAIFJlZlB0cjxSR0JDb2xvcj4gQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUo
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgfQogCiAgICAgLy8gRklNWEU6IFRoaXMgc2hv
dWxkIG5vdCByZXR1cm4gYSBuZXcgb2JqZWN0IGZvciBlYWNoIGludm9jYXRpb24uCi0gICAgcmV0
dXJuIFJHQkNvbG9yOjpjcmVhdGUobV92YWx1ZS5jb2xvci0+cmdiKCkpOworICAgIHJldHVybiBS
R0JDb2xvcjo6Y3JlYXRlKG1fdmFsdWUucmdiY29sb3IpOwogfQogCiBQYWlyKiBDU1NQcmltaXRp
dmVWYWx1ZTo6Z2V0UGFpclZhbHVlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAtMTE3OSwx
MyArMTE3NSwxMyBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9y
bWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgY2FzZSBDU1NfTEVOR1RIX1JF
UEVBVDoKICAgICAgICAgcmV0dXJuIGdldExlbmd0aFJlcGVhdFZhbHVlKCktPmNzc1RleHQoKTsK
ICNlbmRpZgorICAgIGNhc2UgQ1NTX1JHQkNPTE9SOgogICAgIGNhc2UgQ1NTX1BBUlNFUl9IRVhD
T0xPUjogewotICAgICAgICBSR0JBMzIgcmdiOwotICAgICAgICBDb2xvcjo6cGFyc2VIZXhDb2xv
cigoU3RyaW5nKW1fdmFsdWUuc3RyaW5nLCByZ2IpOwotICAgICAgICByZXR1cm4gQ29sb3Iocmdi
KS5jc3NUZXh0KCk7CisgICAgICAgIFJHQkEzMiByZ2JDb2xvciA9IG1fdmFsdWUucmdiY29sb3I7
CisgICAgICAgIGlmIChtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19QQVJTRVJfSEVYQ09MT1Ip
CisgICAgICAgICAgICBDb2xvcjo6cGFyc2VIZXhDb2xvcigoU3RyaW5nKW1fdmFsdWUuc3RyaW5n
LCByZ2JDb2xvcik7CisgICAgICAgIHJldHVybiBDb2xvcihyZ2JDb2xvcikuY3NzVGV4dCgpOwog
ICAgIH0KLSAgICBjYXNlIENTU19SR0JDT0xPUjoKLSAgICAgICAgcmV0dXJuIGNvbG9yKCkuY3Nz
VGV4dCgpOwogICAgIGNhc2UgQ1NTX1BBSVI6CiAgICAgICAgIHJldHVybiBnZXRQYWlyVmFsdWUo
KS0+Y3NzVGV4dCgpOwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTEzNTUsNyAr
MTM1MSw3IEBAIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNsb25l
Rm9yQ1NTT00oKSBjb25zdAogICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlSWRlbnRpZmllcihtX3ZhbHVlLnZhbHVlSUQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU19SR0JDT0xPUjoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSgqbV92YWx1ZS5jb2xvcik7CisgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGVDb2xvcihtX3ZhbHVlLnJnYmNvbG9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NfRElNRU5TSU9OOgogICAgIGNhc2UgQ1NTX1VOS05PV046CkBAIC0xNDM0LDcgKzE0MzAsNyBA
QCBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUm
IG90aGVyKSBjb25zdAogICAgICAgICByZXR1cm4gbV92YWx1ZS5sZW5ndGhSZXBlYXQgJiYgb3Ro
ZXIubV92YWx1ZS5sZW5ndGhSZXBlYXQgJiYgbV92YWx1ZS5sZW5ndGhSZXBlYXQtPmVxdWFscygq
b3RoZXIubV92YWx1ZS5sZW5ndGhSZXBlYXQpOwogI2VuZGlmCiAgICAgY2FzZSBDU1NfUkdCQ09M
T1I6Ci0gICAgICAgIHJldHVybiBjb2xvcigpID09IG90aGVyLmNvbG9yKCk7CisgICAgICAgIHJl
dHVybiBtX3ZhbHVlLnJnYmNvbG9yID09IG90aGVyLm1fdmFsdWUucmdiY29sb3I7CiAgICAgY2Fz
ZSBDU1NfUEFJUjoKICAgICAgICAgcmV0dXJuIG1fdmFsdWUucGFpciAmJiBvdGhlci5tX3ZhbHVl
LnBhaXIgJiYgbV92YWx1ZS5wYWlyLT5lcXVhbHMoKm90aGVyLm1fdmFsdWUucGFpcik7CiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaAppbmRleCBhOWE2Nzc4MWVlMGY0NDFkNGM1Yzc4MzYxZDZkZjJhNDk3YWY4ZTRmLi5kOGQ5
Njc5OGZjOWExNjA1MjVjMjhhNjE1MzEwOGY0YTYwM2RhNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMjUzLDYgKzI1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZShwcm9w
ZXJ0eUlEKSk7IH0KICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVQYXJz
ZXJPcGVyYXRvcihpbnQgcGFyc2VyT3BlcmF0b3IpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
UHJpbWl0aXZlVmFsdWUocGFyc2VyT3BlcmF0b3IpKTsgfQogCisgICAgc3RhdGljIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlQ29sb3IodW5zaWduZWQgcmdiVmFsdWUpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmdiVmFsdWUpKTsgfQogICAgIHN0YXRpYyBS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlcyB0eXBl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCB0eXBlKSk7
IH0KICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiB2YWx1ZSwgVW5pdFR5cGVzIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNyZWF0ZShjb25zdCBMZW5ndGgmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIHN0eWxlKSk7
IH0KQEAgLTM0MSwyMSArMzQyLDIxIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgZ2V0U3RyaW5nVmFsdWUoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIENvdW50ZXIq
IGdldENvdW50ZXJWYWx1ZShFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgQ291bnRlciogZ2V0
Q291bnRlclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1Nf
Q09VTlRFUiA/IG51bGxwdHIgOiBtX3ZhbHVlLmNvdW50ZXI7IH0KKyAgICBDb3VudGVyKiBnZXRD
b3VudGVyVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlICE9IENTU19D
T1VOVEVSID8gMCA6IG1fdmFsdWUuY291bnRlcjsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVj
dCogZ2V0UmVjdFZhbHVlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBSZWN0KiBnZXRSZWN0
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlICE9IENTU19SRUNUID8g
bnVsbHB0ciA6IG1fdmFsdWUucmVjdDsgfQorICAgIFJlY3QqIGdldFJlY3RWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0gQ1NTX1JFQ1QgPyAwIDogbV92YWx1ZS5y
ZWN0OyB9CiAKICAgICBRdWFkKiBnZXRRdWFkVmFsdWUoRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owot
ICAgIFF1YWQqIGdldFF1YWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5
cGUgIT0gQ1NTX1FVQUQgPyBudWxscHRyIDogbV92YWx1ZS5xdWFkOyB9CisgICAgUXVhZCogZ2V0
UXVhZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1NfUVVB
RCA/IDAgOiBtX3ZhbHVlLnF1YWQ7IH0KIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAg
ICAgTGVuZ3RoUmVwZWF0KiBnZXRMZW5ndGhSZXBlYXRWYWx1ZShFeGNlcHRpb25Db2RlJikgY29u
c3Q7Ci0gICAgTGVuZ3RoUmVwZWF0KiBnZXRMZW5ndGhSZXBlYXRWYWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0gQ1NTX0xFTkdUSF9SRVBFQVQgPyBudWxscHRyIDog
bV92YWx1ZS5sZW5ndGhSZXBlYXQ7IH0KKyAgICBMZW5ndGhSZXBlYXQqIGdldExlbmd0aFJlcGVh
dFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1NfTEVOR1RI
X1JFUEVBVCA/IDAgOiBtX3ZhbHVlLmxlbmd0aFJlcGVhdDsgfQogI2VuZGlmCiAKICAgICBXRUJD
T1JFX0VYUE9SVCBSZWZQdHI8UkdCQ29sb3I+IGdldFJHQkNvbG9yVmFsdWUoRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwotICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0IHsgQVNTRVJUKG1fcHJp
bWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1JHQkNPTE9SKTsgcmV0dXJuICptX3ZhbHVlLmNvbG9yOyB9
CisgICAgUkdCQTMyIGdldFJHQkEzMlZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSAhPSBDU1NfUkdCQ09MT1IgPyAwIDogbV92YWx1ZS5yZ2Jjb2xvcjsgfQogCiAgICAg
UGFpciogZ2V0UGFpclZhbHVlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBQYWlyKiBnZXRQ
YWlyVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlICE9IENTU19QQUlS
ID8gbnVsbHB0ciA6IG1fdmFsdWUucGFpcjsgfQpAQCAtNDAzLDcgKzQwNCw3IEBAIHByaXZhdGU6
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVydHlJRCk7CiAgICAgLy8gRklYTUU6IGlu
dCB2cy4gdW5zaWduZWQgb3ZlcmxvYWRpbmcgaXMgdG9vIHN1YnRsZSB0byBkaXN0aW5ndWlzaCB0
aGUgY29sb3IgYW5kIG9wZXJhdG9yIGNhc2VzLgogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGludCBw
YXJzZXJPcGVyYXRvcik7Ci0gICAgQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgQ29sb3ImKTsKKyAg
ICBDU1NQcmltaXRpdmVWYWx1ZSh1bnNpZ25lZCBjb2xvcik7IC8vIFJHQiB2YWx1ZQogICAgIENT
U1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0aCYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNv
bnN0IExlbmd0aCYsIGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUo
Y29uc3QgTGVuZ3RoU2l6ZSYsIGNvbnN0IFJlbmRlclN0eWxlJik7CkBAIC00NjMsNyArNDY0LDcg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgICAgICBMZW5ndGhS
ZXBlYXQqIGxlbmd0aFJlcGVhdDsKICNlbmRpZgotICAgICAgICBjb25zdCBDb2xvciogY29sb3I7
CisgICAgICAgIHVuc2lnbmVkIHJnYmNvbG9yOwogICAgICAgICBQYWlyKiBwYWlyOwogICAgICAg
ICBEYXNoYm9hcmRSZWdpb24qIHJlZ2lvbjsKICAgICAgICAgQ1NTQmFzaWNTaGFwZSogc2hhcGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRl
eCAyZWJmMzIyYzNiNTg2OTdjZGFjM2VlOTZmNzlhMTU0MmNmMDVjNzQ1Li41ZWZkYWJiMDJmNTMz
YzM0ODhiMjIyYmU3M2E2NjA1ZmJlOTlkNmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQ5MzksMTMgKzQ5MzksNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01vZGUoKSBj
b25zdAogICAgIHJldHVybiBXTV9MUlRCOwogfQogCi10ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgQ29sb3ImIGNvbG9yKQotICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCi17Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19SR0JDT0xPUjsKLSAgICBtX3ZhbHVlLmNvbG9yID0gbmV3IENvbG9yKGNvbG9yKTsKLX0KLQog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENT
U0ZvbnRGYW1pbHkgZm9udEZhbWlseSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAppbmRleCAyNDE4Y2E5ZTBhMjY4OTc0NjU2
MTAxYjcyYjVlNDJjZTdiNjkyYTAyLi5lNzY3Mzc3NGMxZjFhZDA3ZjI0YWFkYzNmMzgxYmRjMzVm
NDVhYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcApAQCAtNDgsOSArNDgsOSBA
QCBDU1NWYWx1ZVBvb2w6OkNTU1ZhbHVlUG9vbCgpCiAgICAgbV91bnNldFZhbHVlLmNvbnN0cnVj
dCgpOwogICAgIG1fcmV2ZXJ0VmFsdWUuY29uc3RydWN0KCk7CiAKLSAgICBtX3RyYW5zcGFyZW50
Q29sb3IuY29uc3RydWN0KENvbG9yKENvbG9yOjp0cmFuc3BhcmVudCkpOwotICAgIG1fd2hpdGVD
b2xvci5jb25zdHJ1Y3QoQ29sb3IoQ29sb3I6OndoaXRlKSk7Ci0gICAgbV9ibGFja0NvbG9yLmNv
bnN0cnVjdChDb2xvcihDb2xvcjo6YmxhY2spKTsKKyAgICBtX3RyYW5zcGFyZW50Q29sb3IuY29u
c3RydWN0KENvbG9yOjp0cmFuc3BhcmVudCk7CisgICAgbV93aGl0ZUNvbG9yLmNvbnN0cnVjdChD
b2xvcjo6d2hpdGUpOworICAgIG1fYmxhY2tDb2xvci5jb25zdHJ1Y3QoQ29sb3I6OmJsYWNrKTsK
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DU1NWYWx1ZUtleXdvcmRzOyArK2kp
CiAgICAgICAgIG1faWRlbnRpZmllclZhbHVlc1tpXS5jb25zdHJ1Y3Qoc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVJRD4oaSkpOwpAQCAtNzMsMTUgKzczLDE1IEBAIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4g
Q1NTVmFsdWVQb29sOjpjcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudCkK
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoaWRlbnQpOwog
fQogCi1SZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9vbDo6Y3JlYXRlQ29sb3JWYWx1
ZShjb25zdCBDb2xvciYgY29sb3IpCitSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9v
bDo6Y3JlYXRlQ29sb3JWYWx1ZSh1bnNpZ25lZCByZ2JWYWx1ZSkKIHsKICAgICAvLyBUaGVzZSBh
cmUgdGhlIGVtcHR5IGFuZCBkZWxldGVkIHZhbHVlcyBvZiB0aGUgaGFzaCB0YWJsZS4KLSAgICBp
ZiAoY29sb3IgPT0gQ29sb3I6OnRyYW5zcGFyZW50KQorICAgIGlmIChyZ2JWYWx1ZSA9PSBDb2xv
cjo6dHJhbnNwYXJlbnQpCiAgICAgICAgIHJldHVybiBtX3RyYW5zcGFyZW50Q29sb3IuZ2V0KCk7
Ci0gICAgaWYgKGNvbG9yID09IENvbG9yOjp3aGl0ZSkKKyAgICBpZiAocmdiVmFsdWUgPT0gQ29s
b3I6OndoaXRlKQogICAgICAgICByZXR1cm4gbV93aGl0ZUNvbG9yLmdldCgpOwogICAgIC8vIEp1
c3QgYmVjYXVzZSBpdCBpcyBjb21tb24uCi0gICAgaWYgKGNvbG9yID09IENvbG9yOjpibGFjaykK
KyAgICBpZiAocmdiVmFsdWUgPT0gQ29sb3I6OmJsYWNrKQogICAgICAgICByZXR1cm4gbV9ibGFj
a0NvbG9yLmdldCgpOwogCiAgICAgLy8gUmVtb3ZlIG9uZSBlbnRyeSBhdCByYW5kb20gaWYgdGhl
IGNhY2hlIGdyb3dzIHRvbyBsYXJnZS4KQEAgLTg5LDkgKzg5LDkgQEAgUmVmPENTU1ByaW1pdGl2
ZVZhbHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZUNvbG9yVmFsdWUoY29uc3QgQ29sb3ImIGNvbG9y
KQogICAgIGlmIChtX2NvbG9yVmFsdWVDYWNoZS5zaXplKCkgPj0gbWF4aW11bUNvbG9yQ2FjaGVT
aXplKQogICAgICAgICBtX2NvbG9yVmFsdWVDYWNoZS5yZW1vdmUobV9jb2xvclZhbHVlQ2FjaGUu
YmVnaW4oKSk7CiAKLSAgICBDb2xvclZhbHVlQ2FjaGU6OkFkZFJlc3VsdCBlbnRyeSA9IG1fY29s
b3JWYWx1ZUNhY2hlLmFkZChjb2xvciwgbnVsbHB0cik7CisgICAgQ29sb3JWYWx1ZUNhY2hlOjpB
ZGRSZXN1bHQgZW50cnkgPSBtX2NvbG9yVmFsdWVDYWNoZS5hZGQocmdiVmFsdWUsIG51bGxwdHIp
OwogICAgIGlmIChlbnRyeS5pc05ld0VudHJ5KQotICAgICAgICBlbnRyeS5pdGVyYXRvci0+dmFs
dWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGNvbG9yKTsKKyAgICAgICAgZW50cnkuaXRl
cmF0b3ItPnZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKHJnYlZhbHVlKTsK
ICAgICByZXR1cm4gKmVudHJ5Lml0ZXJhdG9yLT52YWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlUG9vbC5oCmluZGV4IDYzNTQxZWQzNzBiMGJlNDFlMDg1ZmI4N2FhNzIyNzE0NzZiODIwZjku
LmQxY2I0MjRjZGRjYWEwM2E2OTQ1NjcxZGNhYjczNzE2NTk0NmYzMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVQb29sLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJDU1NSZXZlcnRWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCi0jaW5jbHVkZSAiQ29sb3JIYXNoLmgiCiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
NjEsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPENTU1JldmVydFZhbHVlPiBjcmVhdGVSZXZl
cnRWYWx1ZSgpIHsgcmV0dXJuIG1fcmV2ZXJ0VmFsdWUuZ2V0KCk7IH0KICAgICBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlkZW50aWZpZXIp
OwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1By
b3BlcnR5SUQgaWRlbnRpZmllcik7Ci0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVD
b2xvclZhbHVlKGNvbnN0IENvbG9yJik7CisgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVh
dGVDb2xvclZhbHVlKHVuc2lnbmVkIHJnYlZhbHVlKTsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNyZWF0ZVZhbHVlKGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBl
cyk7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVWYWx1ZShjb25zdCBTdHJpbmcm
IHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHR5cGUpIHsgcmV0dXJuIENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHR5cGUpOyB9CiAgICAgUmVmPENTU1ByaW1pdGl2
ZVZhbHVlPiBjcmVhdGVWYWx1ZShjb25zdCBMZW5ndGgmIHZhbHVlLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIHsgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHN0eWxl
KTsgfQpAQCAtNzMsNyArNzIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENTU1ZhbHVlUG9v
bCgpOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPENvbG9yLCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+PiBDb2xvclZhbHVlQ2FjaGU7CisgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+PiBDb2xvclZhbHVlQ2FjaGU7CiAgICAgQ29sb3JWYWx1ZUNh
Y2hlIG1fY29sb3JWYWx1ZUNhY2hlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmlu
ZywgUmVmUHRyPENTU1ZhbHVlTGlzdD4+IEZvbnRGYWNlVmFsdWVDYWNoZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA4NDk5ZDhmN2Q1NDFmYmVhZTRkOTE3YjZlN2EyNzU5
MWEyM2M4NjNmLi5lYzU5MzMwOGM5ZjRiYWYwYjMzMzA3NmRiMDMyMTRlMGU2MGM4NGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xODMxLDcgKzE4MzEsNyBAQCBib29s
IFN0eWxlUmVzb2x2ZXI6OmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlSXNEZXJpdmVkRnJvbUVsZW1l
bnQoY29uc3QgQ1NTUHJpbWl0aQogQ29sb3IgU3R5bGVSZXNvbHZlcjo6Y29sb3JGcm9tUHJpbWl0
aXZlVmFsdWUoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlLCBib29sIGZvclZpc2l0ZWRM
aW5rKSBjb25zdAogewogICAgIGlmICh2YWx1ZS5pc1JHQkNvbG9yKCkpCi0gICAgICAgIHJldHVy
biB2YWx1ZS5jb2xvcigpOworICAgICAgICByZXR1cm4gQ29sb3IodmFsdWUuZ2V0UkdCQTMyVmFs
dWUoKSk7CiAKICAgICBjb25zdCBTdGF0ZSYgc3RhdGUgPSBtX3N0YXRlOwogICAgIENTU1ZhbHVl
SUQgaWRlbnQgPSB2YWx1ZS5nZXRWYWx1ZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlci5jcHAKaW5kZXggM2UwNmY4NTIyNzM0M2Y5ZDY5Yjc4YTI1NzA4MzkxMWNlOWZjYThm
YS4uN2VmMmI2ZmUxYTgzZjY2MDI5ZjJkYmYxZDFhMTEwYmQyZjNkMzUyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtNDk0LDggKzQ5NCw4IEBAIHN0YXRpYyBD
U1NQYXJzZXI6OlBhcnNlUmVzdWx0IHBhcnNlQ29sb3JWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBkZWNsYXJhdGlvCiAgICAgICAgIGF1dG8gdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZUlEKTsKICAgICAgICAgcmV0dXJuIGRl
Y2xhcmF0aW9uLmFkZFBhcnNlZFByb3BlcnR5KENTU1Byb3BlcnR5KHByb3BlcnR5SWQsIFdURk1v
dmUodmFsdWUpLCBpbXBvcnRhbnQpKSA/IENTU1BhcnNlcjo6UGFyc2VSZXN1bHQ6OkNoYW5nZWQg
OiBDU1NQYXJzZXI6OlBhcnNlUmVzdWx0OjpVbmNoYW5nZWQ7CiAgICAgfQotICAgIENvbG9yIGNv
bG9yID0gQ1NTUGFyc2VyOjpmYXN0UGFyc2VDb2xvcihzdHJpbmcsIHN0cmljdCAmJiBzdHJpbmdb
MF0gIT0gJyMnKTsKLSAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICBSR0JBMzIgY29sb3I7
CisgICAgaWYgKCFDU1NQYXJzZXI6OmZhc3RQYXJzZUNvbG9yKGNvbG9yLCBzdHJpbmcsIHN0cmlj
dCAmJiBzdHJpbmdbMF0gIT0gJyMnKSkKICAgICAgICAgcmV0dXJuIENTU1BhcnNlcjo6UGFyc2VS
ZXN1bHQ6OkVycm9yOwogCiAgICAgYXV0byB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlQ29sb3JWYWx1ZShjb2xvcik7CkBAIC0xMzcwLDM0ICsxMzcwLDM2IEBAIENTU1Bh
cnNlcjo6UGFyc2VSZXN1bHQgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIGRlY2xhcmF0aW9uCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotQ29sb3IgQ1NTUGFy
c2VyOjpwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0cmljdCkKKy8vIFRo
ZSBjb2xvciB3aWxsIG9ubHkgYmUgY2hhbmdlZCB3aGVuIHN0cmluZyBjb250YWlucyBhIHZhbGlk
IENTUyBjb2xvciwgc28gY2FsbGVycworLy8gY2FuIHNldCBpdCB0byBhIGRlZmF1bHQgY29sb3Ig
YW5kIGlnbm9yZSB0aGUgYm9vbGVhbiByZXN1bHQuCitib29sIENTU1BhcnNlcjo6cGFyc2VDb2xv
cihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBzdHJpY3QpCiB7CiAg
ICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGaXJzdCB0cnkgY3JlYXRpbmcgYSBjb2xvciBzcGVj
aWZpZWQgYnkgbmFtZSwgcmdiYSgpLCByZ2IoKSBvciAiIyIgc3ludGF4LgotICAgIENvbG9yIGNv
bG9yID0gZmFzdFBhcnNlQ29sb3Ioc3RyaW5nLCBzdHJpY3QpOwotICAgIGlmIChjb2xvci5pc1Zh
bGlkKCkpCi0gICAgICAgIHJldHVybiBjb2xvcjsKKyAgICBpZiAoZmFzdFBhcnNlQ29sb3IoY29s
b3IsIHN0cmluZywgc3RyaWN0KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBDU1NQYXJz
ZXIgcGFyc2VyKEhUTUxTdGFuZGFyZE1vZGUpOwogCiAgICAgLy8gSW4gY2FzZSB0aGUgZmFzdC1w
YXRoIHBhcnNlciBkaWRuJ3QgdW5kZXJzdGFuZCB0aGUgY29sb3IsIHRyeSB0aGUgZnVsbCBwYXJz
ZXIuCi0gICAgaWYgKCFwYXJzZXIucGFyc2VDb2xvckZyb21TdHJpbmcoc3RyaW5nKSkKLSAgICAg
ICAgcmV0dXJuIENvbG9yKCk7CisgICAgaWYgKCFwYXJzZXIucGFyc2VDb2xvcihzdHJpbmcpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDU1NWYWx1ZSYgdmFsdWUgPSAqcGFyc2VyLm1f
cGFyc2VkUHJvcGVydGllcy5maXJzdCgpLnZhbHVlKCk7CiAgICAgaWYgKCFpczxDU1NQcmltaXRp
dmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlLmlz
UkdCQ29sb3IoKSkKLSAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS5jb2xvcigpOworICAgIGNvbG9yID0gcHJp
bWl0aXZlVmFsdWUuZ2V0UkdCQTMyVmFsdWUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBDU1NQYXJzZXI6OnBhcnNlQ29sb3JGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAg
c2V0dXBQYXJzZXIoIkAtd2Via2l0LWRlY2xze2NvbG9yOiIsIHN0cmluZywgIn0gIik7CiAgICAg
Y3NzeXlwYXJzZSh0aGlzKTsKQEAgLTE0MDYsMTggKzE0MDgsMjMgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQ29sb3JGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHJldHVybiAh
bV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSAmJiBtX3BhcnNlZFByb3BlcnRpZXMuZmlyc3Qo
KS5pZCgpID09IENTU1Byb3BlcnR5Q29sb3I7CiB9CiAKLUNvbG9yIENTU1BhcnNlcjo6cGFyc2VT
eXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQorYm9v
bCBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+cGFnZSgpKQotICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgQ1NTUGFyc2VyU3RyaW5nIGNzc0NvbG9yOwogICAgIGNzc0NvbG9yLmlu
aXQoc3RyaW5nKTsKICAgICBDU1NWYWx1ZUlEIGlkID0gY3NzVmFsdWVLZXl3b3JkSUQoY3NzQ29s
b3IpOwogICAgIGlmICghdmFsaWRQcmltaXRpdmVWYWx1ZUNvbG9yKGlkKSkKLSAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBkb2N1bWVu
dC0+cGFnZSgpLT50aGVtZSgpLnN5c3RlbUNvbG9yKGlkKTsKKyAgICBDb2xvciBwYXJzZWRDb2xv
ciA9IGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCkuc3lzdGVtQ29sb3IoaWQpOworICAgIGlmICgh
cGFyc2VkQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb2xv
ciA9IHBhcnNlZENvbG9yLnJnYigpOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIENTU1Bh
cnNlcjo6cGFyc2VTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHN0cmluZywgQ1NTU2VsZWN0b3JMaXN0
JiBzZWxlY3Rvckxpc3QpCkBAIC03NDc0LDE4ICs3NDgxLDE3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBtaWdodEJlUkdCKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0aWMgaW5s
aW5lIENvbG9yIGZhc3RQYXJzZUNvbG9ySW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoICwgYm9vbCBzdHJpY3QpCitzdGF0aWMgaW5saW5lIGJv
b2wgZmFzdFBhcnNlQ29sb3JJbnRlcm5hbChSR0JBMzImIHJnYiwgY29uc3QgQ2hhcmFjdGVyVHlw
ZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoICwgYm9vbCBzdHJpY3QpCiB7CiAgICAgQ1NT
UHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBleHBlY3QgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1VOS05PV047Ci0KKyAgICAKICAgICBpZiAoIXN0cmljdCAmJiBsZW5ndGggPj0gMykgewotICAg
ICAgICBSR0JBMzIgcmdiOwogICAgICAgICBpZiAoY2hhcmFjdGVyc1swXSA9PSAnIycpIHsKICAg
ICAgICAgICAgIGlmIChDb2xvcjo6cGFyc2VIZXhDb2xvcihjaGFyYWN0ZXJzICsgMSwgbGVuZ3Ro
IC0gMSwgcmdiKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29sb3IocmdiKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChD
b2xvcjo6cGFyc2VIZXhDb2xvcihjaGFyYWN0ZXJzLCBsZW5ndGgsIHJnYikpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIENvbG9yKHJnYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTc0OTksMTYgKzc1MDUsMTcgQEAgc3RhdGljIGlubGluZSBD
b2xvciBmYXN0UGFyc2VDb2xvckludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3Rl
cnMsIHVuc2kKICAgICAgICAgaW50IGFscGhhOwogICAgICAgICAKICAgICAgICAgaWYgKCFwYXJz
ZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIHJlZCkpCi0g
ICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBl
eHBlY3QsIGdyZWVuKSkKLSAgICAgICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3Vy
cmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgYmx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29sb3Io
KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFwYXJzZUFscGhhVmFs
dWUoY3VycmVudCwgZW5kLCAnKScsIGFscGhhKSkKLSAgICAgICAgICAgIHJldHVybiBDb2xvcigp
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoY3VycmVudCAhPSBlbmQp
Ci0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKLSAgICAgICAgcmV0dXJuIENvbG9yKG1ha2VS
R0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJnYiA9IG1ha2VSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gVHJ5IHJnYigpIHN5bnRheC4KQEAgLTc1
MTksMzkgKzc1MjYsNDUgQEAgc3RhdGljIGlubGluZSBDb2xvciBmYXN0UGFyc2VDb2xvckludGVy
bmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2kKICAgICAgICAgaW50IGdy
ZWVuOwogICAgICAgICBpbnQgYmx1ZTsKICAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJj
ZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIHJlZCkpCi0gICAgICAgICAgICByZXR1
cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFwYXJz
ZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIGdyZWVuKSkK
LSAgICAgICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnKScs
IGV4cGVjdCwgYmx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGN1cnJlbnQgIT0gZW5kKQotICAgICAgICAgICAg
cmV0dXJuIENvbG9yKCk7Ci0gICAgICAgIHJldHVybiBDb2xvcihtYWtlUkdCKHJlZCwgZ3JlZW4s
IGJsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmdiID0gbWFrZVJH
QihyZWQsIGdyZWVuLCBibHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
cmV0dXJuIENvbG9yKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBTdHJpbmdUeXBlPgotQ29sb3IgQ1NTUGFyc2VyOjpmYXN0UGFyc2VDb2xvcihjb25zdCBTdHJp
bmdUeXBlJiBuYW1lLCBib29sIHN0cmljdCkKK2Jvb2wgQ1NTUGFyc2VyOjpmYXN0UGFyc2VDb2xv
cihSR0JBMzImIHJnYiwgY29uc3QgU3RyaW5nVHlwZSYgbmFtZSwgYm9vbCBzdHJpY3QpCiB7CiAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gbmFtZS5sZW5ndGgoKTsKKyAgICBib29sIHBhcnNlUmVzdWx0
OwogCiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBDb2xvciBjb2xvcjsKICAgICBpZiAobmFtZS5pczhCaXQoKSkK
LSAgICAgICAgY29sb3IgPSBmYXN0UGFyc2VDb2xvckludGVybmFsKG5hbWUuY2hhcmFjdGVyczgo
KSwgbGVuZ3RoLCBzdHJpY3QpOworICAgICAgICBwYXJzZVJlc3VsdCA9IGZhc3RQYXJzZUNvbG9y
SW50ZXJuYWwocmdiLCBuYW1lLmNoYXJhY3RlcnM4KCksIGxlbmd0aCwgc3RyaWN0KTsKICAgICBl
bHNlCi0gICAgICAgIGNvbG9yID0gZmFzdFBhcnNlQ29sb3JJbnRlcm5hbChuYW1lLmNoYXJhY3Rl
cnMxNigpLCBsZW5ndGgsIHN0cmljdCk7CisgICAgICAgIHBhcnNlUmVzdWx0ID0gZmFzdFBhcnNl
Q29sb3JJbnRlcm5hbChyZ2IsIG5hbWUuY2hhcmFjdGVyczE2KCksIGxlbmd0aCwgc3RyaWN0KTsK
IAotICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBjb2xvcjsKKyAgICBp
ZiAocGFyc2VSZXN1bHQpCisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gVHJ5IG5hbWVk
IGNvbG9ycy4KLSAgICBjb2xvci5zZXROYW1lZENvbG9yKG5hbWUpOwotICAgIHJldHVybiBjb2xv
cjsKKyAgICBDb2xvciB0YzsKKyAgICB0Yy5zZXROYW1lZENvbG9yKG5hbWUpOworICAgIGlmICh0
Yy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgcmdiID0gdGMucmdiKCk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCiBpbmxpbmUgZG91YmxlIENT
U1BhcnNlcjo6cGFyc2VkRG91YmxlKFZhbHVlV2l0aENhbGN1bGF0aW9uJiB2YWx1ZVdpdGhDYWxj
dWxhdGlvbikKQEAgLTc2NjcsNTggKzc2ODAsNjEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlSFNM
UGFyYW1ldGVycyhDU1NQYXJzZXJWYWx1ZSYgdmFsdWUsIGRvdWJsZSogY29sb3JBcnJheSwgYm8K
IAogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlKQogewotICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xvckZyb21WYWx1
ZSh2YWx1ZSA/ICp2YWx1ZSA6ICptX3ZhbHVlTGlzdC0+Y3VycmVudCgpKTsKLSAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICBSR0JBMzIgYyA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBp
ZiAoIXBhcnNlQ29sb3JGcm9tVmFsdWUodmFsdWUgPyAqdmFsdWUgOiAqbV92YWx1ZUxpc3QtPmN1
cnJlbnQoKSwgYykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUNvbG9yVmFsdWUoY29sb3IpOworICAgIHJldHVybiBD
U1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUNvbG9yVmFsdWUoYyk7CiB9CiAKLUNvbG9y
IENTU1BhcnNlcjo6cGFyc2VDb2xvckZyb21WYWx1ZShDU1NQYXJzZXJWYWx1ZSYgdmFsdWUpCiti
b29sIENTU1BhcnNlcjo6cGFyc2VDb2xvckZyb21WYWx1ZShDU1NQYXJzZXJWYWx1ZSYgdmFsdWUs
IFJHQkEzMiYgYykKIHsKICAgICBpZiAoaW5RdWlya3NNb2RlKCkgJiYgdmFsdWUudW5pdCA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUgogICAgICAgICAmJiB2YWx1ZS5mVmFsdWUgPj0g
MC4gJiYgdmFsdWUuZlZhbHVlIDwgMTAwMDAwMC4pIHsKICAgICAgICAgU3RyaW5nIHN0ciA9IFN0
cmluZzo6Zm9ybWF0KCIlMDZkIiwgc3RhdGljX2Nhc3Q8aW50PigodmFsdWUuZlZhbHVlKy41KSkp
OwogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc3RyaWN0IHBhcnNpbmcgZm9yIFNW
RyBhcyB3ZWxsLgotICAgICAgICByZXR1cm4gZmFzdFBhcnNlQ29sb3Ioc3RyLCBpblN0cmljdE1v
ZGUoKSk7CisgICAgICAgIGlmICghZmFzdFBhcnNlQ29sb3IoYywgc3RyLCBpblN0cmljdE1vZGUo
KSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIGlmICh2YWx1ZS51bml0
ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX0hFWENPTE9SCiAgICAgICAgIHx8IHZh
bHVlLnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVAogICAgICAgICB8fCAoaW5R
dWlya3NNb2RlKCkgJiYgdmFsdWUudW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RJTUVO
U0lPTikpIHsKLSAgICAgICAgcmV0dXJuIGZhc3RQYXJzZUNvbG9yKHZhbHVlLnN0cmluZywgaW5T
dHJpY3RNb2RlKCkgJiYgdmFsdWUudW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5U
KTsKKyAgICAgICAgaWYgKCFmYXN0UGFyc2VDb2xvcihjLCB2YWx1ZS5zdHJpbmcsIGluU3RyaWN0
TW9kZSgpICYmIHZhbHVlLnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIGlmICh2YWx1ZS51bml0ID09IENT
U1BhcnNlclZhbHVlOjpGdW5jdGlvbgogICAgICAgICAmJiB2YWx1ZS5mdW5jdGlvbi0+YXJncwog
ICAgICAgICAmJiB2YWx1ZS5mdW5jdGlvbi0+YXJncy0+c2l6ZSgpID09IDUgLyogcmdiICsgdHdv
IGNvbW1hcyAqLwogICAgICAgICAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZS5mdW5jdGlvbi0+bmFtZSwgInJnYigiKSkgewogICAgICAgICBpbnQgY29sb3JWYWx1ZXNbM107
CiAgICAgICAgIGlmICghcGFyc2VSR0JQYXJhbWV0ZXJzKHZhbHVlLCBjb2xvclZhbHVlcywgZmFs
c2UpKQotICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7Ci0gICAgICAgIHJldHVybiBDb2xvciht
YWtlUkdCKGNvbG9yVmFsdWVzWzBdLCBjb2xvclZhbHVlc1sxXSwgY29sb3JWYWx1ZXNbMl0pKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYyA9IG1ha2VSR0IoY29sb3JWYWx1
ZXNbMF0sIGNvbG9yVmFsdWVzWzFdLCBjb2xvclZhbHVlc1syXSk7CiAgICAgfSBlbHNlIGlmICh2
YWx1ZS51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbgogICAgICAgICAmJiB2YWx1ZS5m
dW5jdGlvbi0+YXJncwogICAgICAgICAmJiB2YWx1ZS5mdW5jdGlvbi0+YXJncy0+c2l6ZSgpID09
IDcgLyogcmdiYSArIHRocmVlIGNvbW1hcyAqLwogICAgICAgICAmJiBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZSh2YWx1ZS5mdW5jdGlvbi0+bmFtZSwgInJnYmEoIikpIHsKICAgICAgICAg
aW50IGNvbG9yVmFsdWVzWzRdOwogICAgICAgICBpZiAoIXBhcnNlUkdCUGFyYW1ldGVycyh2YWx1
ZSwgY29sb3JWYWx1ZXMsIHRydWUpKQotICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7Ci0gICAg
ICAgIHJldHVybiBDb2xvcihtYWtlUkdCQShjb2xvclZhbHVlc1swXSwgY29sb3JWYWx1ZXNbMV0s
IGNvbG9yVmFsdWVzWzJdLCBjb2xvclZhbHVlc1szXSkpOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBjID0gbWFrZVJHQkEoY29sb3JWYWx1ZXNbMF0sIGNvbG9yVmFsdWVzWzFd
LCBjb2xvclZhbHVlc1syXSwgY29sb3JWYWx1ZXNbM10pOwogICAgIH0gZWxzZSBpZiAodmFsdWUu
dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24KICAgICAgICAgJiYgdmFsdWUuZnVuY3Rp
b24tPmFyZ3MKICAgICAgICAgJiYgdmFsdWUuZnVuY3Rpb24tPmFyZ3MtPnNpemUoKSA9PSA1IC8q
IGhzbCArIHR3byBjb21tYXMgKi8KICAgICAgICAgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UodmFsdWUuZnVuY3Rpb24tPm5hbWUsICJoc2woIikpIHsKICAgICAgICAgZG91YmxlIGNv
bG9yVmFsdWVzWzNdOwogICAgICAgICBpZiAoIXBhcnNlSFNMUGFyYW1ldGVycyh2YWx1ZSwgY29s
b3JWYWx1ZXMsIGZhbHNlKSkKLSAgICAgICAgICAgIHJldHVybiBDb2xvcigpOwotICAgICAgICBy
ZXR1cm4gQ29sb3IobWFrZVJHQkFGcm9tSFNMQShjb2xvclZhbHVlc1swXSwgY29sb3JWYWx1ZXNb
MV0sIGNvbG9yVmFsdWVzWzJdLCAxLjApKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgYyA9IG1ha2VSR0JBRnJvbUhTTEEoY29sb3JWYWx1ZXNbMF0sIGNvbG9yVmFsdWVzWzFd
LCBjb2xvclZhbHVlc1syXSwgMS4wKTsKICAgICB9IGVsc2UgaWYgKHZhbHVlLnVuaXQgPT0gQ1NT
UGFyc2VyVmFsdWU6OkZ1bmN0aW9uCiAgICAgICAgICYmIHZhbHVlLmZ1bmN0aW9uLT5hcmdzCiAg
ICAgICAgICYmIHZhbHVlLmZ1bmN0aW9uLT5hcmdzLT5zaXplKCkgPT0gNyAvKiBoc2xhICsgdGhy
ZWUgY29tbWFzICovCiAgICAgICAgICYmIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZh
bHVlLmZ1bmN0aW9uLT5uYW1lLCAiaHNsYSgiKSkgewogICAgICAgICBkb3VibGUgY29sb3JWYWx1
ZXNbNF07CiAgICAgICAgIGlmICghcGFyc2VIU0xQYXJhbWV0ZXJzKHZhbHVlLCBjb2xvclZhbHVl
cywgdHJ1ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKLSAgICAgICAgcmV0dXJuIENv
bG9yKG1ha2VSR0JBRnJvbUhTTEEoY29sb3JWYWx1ZXNbMF0sIGNvbG9yVmFsdWVzWzFdLCBjb2xv
clZhbHVlc1syXSwgY29sb3JWYWx1ZXNbM10pKTsKLSAgICB9CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGMgPSBtYWtlUkdCQUZyb21IU0xBKGNvbG9yVmFsdWVzWzBdLCBjb2xv
clZhbHVlc1sxXSwgY29sb3JWYWx1ZXNbMl0sIGNvbG9yVmFsdWVzWzNdKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIENvbG9yKCk7CisgICAgcmV0dXJu
IHRydWU7CiB9CiAKIC8vIFRoaXMgY2xhc3MgdHJhY2tzIHBhcnNpbmcgc3RhdGUgZm9yIHNoYWRv
dyB2YWx1ZXMuICBJZiBpdCBnb2VzIG91dCBvZiBzY29wZSAoZS5nLiwgZHVlIHRvIGFuIGVhcmx5
IHJldHVybikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCmluZGV4IGZjOWZmNDNh
N2JiZjJlZTI5OGFlZTE0ZWI2NWI4MzZiNGM2ODFhMmYuLmQyYzg4MDNkMTI0MmE3ZmJkODM4OTNl
YjE5MGI4ZjZkMWM1ZTcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApA
QCAtMTM0LDkgKzEzNCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFyc2VSZXN1bHQgcGFyc2VW
YWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5n
JiwgYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmLCBTdHlsZVNoZWV0Q29u
dGVudHMqKTsKICAgICBzdGF0aWMgUGFyc2VSZXN1bHQgcGFyc2VDdXN0b21Qcm9wZXJ0eVZhbHVl
KE11dGFibGVTdHlsZVByb3BlcnRpZXMmLCBjb25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlckNvbnRleHQm
LCBTdHlsZVNoZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KTsKIAotICAgIHN0YXRpYyBD
b2xvciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYsIGJvb2wgc3RyaWN0ID0gZmFsc2UpOworICAg
IHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3QgU3RyaW5nJiwgYm9v
bCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFN5c3RlbUNvbG9yVmFs
dWUoQ1NTVmFsdWVJRCk7Ci0gICAgc3RhdGljIENvbG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3Qg
U3RyaW5nJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYXJzZVN5c3RlbUNvbG9yKFJH
QkEzMiYgY29sb3IsIGNvbnN0IFN0cmluZyYsIERvY3VtZW50Kik7CiAgICAgc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZUxpc3Q+IHBhcnNlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKTsK
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlVmFsaWRQcmltaXRpdmUoQ1NTVmFs
dWVJRCBpZGVudCwgVmFsdWVXaXRoQ2FsY3VsYXRpb24mKTsKIApAQCAtMjc4LDExICsyNzgsMTEg
QEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VSR0JQYXJhbWV0ZXJzKENTU1BhcnNlclZhbHVlJiwg
aW50KiBjb2xvclZhbHVlcywgYm9vbCBwYXJzZUFscGhhKTsKICAgICBib29sIHBhcnNlSFNMUGFy
YW1ldGVycyhDU1NQYXJzZXJWYWx1ZSYsIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJvb2wgcGFyc2VB
bHBoYSk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUNvbG9yKENTU1BhcnNl
clZhbHVlKiA9IG51bGxwdHIpOwotICAgIENvbG9yIHBhcnNlQ29sb3JGcm9tVmFsdWUoQ1NTUGFy
c2VyVmFsdWUmKTsKKyAgICBib29sIHBhcnNlQ29sb3JGcm9tVmFsdWUoQ1NTUGFyc2VyVmFsdWUm
LCBSR0JBMzImKTsKICAgICB2b2lkIHBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJiwgQ1NTU2Vs
ZWN0b3JMaXN0Jik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlPgotICAgIHN0
YXRpYyBDb2xvciBmYXN0UGFyc2VDb2xvcihjb25zdCBTdHJpbmdUeXBlJiwgYm9vbCBzdHJpY3Qp
OworICAgIHN0YXRpYyBib29sIGZhc3RQYXJzZUNvbG9yKFJHQkEzMiYsIGNvbnN0IFN0cmluZ1R5
cGUmLCBib29sIHN0cmljdCk7CiAKICAgICBib29sIHBhcnNlTGluZUhlaWdodChib29sIGltcG9y
dGFudCk7CiAgICAgYm9vbCBwYXJzZUZvbnRTaXplKGJvb2wgaW1wb3J0YW50KTsKQEAgLTYxOCw3
ICs2MTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VGb250RmFjZVNyY1VSSShDU1NWYWx1
ZUxpc3QmKTsKICAgICBib29sIHBhcnNlRm9udEZhY2VTcmNMb2NhbChDU1NWYWx1ZUxpc3QmKTsK
IAotICAgIGJvb2wgcGFyc2VDb2xvckZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgYm9v
bCBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYpOwogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9V
VCkKICAgICBib29sIHBhcnNlSW50ZWdlck9yQ3VzdG9tSWRlbnRGcm9tR3JpZFBvc2l0aW9uKFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4mIG51bWVyaWNWYWx1ZSwgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiYgZ3JpZExpbmVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCBjZDMzNDBhODI4NmMyNWMzMTNmZTY0ZmI2YmRi
N2NjN2RlZDg2NTc3Li4yYjQ0MDY5NmY0YzEyZjliYzg3M2M2ZGUxY2JhMjQ4NzY5ZTIxYzgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3Bw
CkBAIC00MTEsMjEgKzQxMSwxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbWlnaHRCZVJHQihjb25z
dCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotc3RhdGljIENvbG9yIGZhc3RQYXJzZUNvbG9y
SW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3Ro
LCBib29sIHF1aXJrc01vZGUpCitzdGF0aWMgYm9vbCBmYXN0UGFyc2VDb2xvckludGVybmFsKFJH
QkEzMiYgcmdiLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgsIGJvb2wgcXVpcmtzTW9kZSkKIHsKICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVz
IGV4cGVjdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM6OkNTU19VTktOT1dOOwogCi0g
ICAgaWYgKGxlbmd0aCA+PSA0ICYmIGNoYXJhY3RlcnNbMF0gPT0gJyMnKSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIGNoZWNrIGlmIHRoZSBwYXJzZSB3b3JrZWQ/IElzIHRo
ZSBmYWxsYmFjayBibGFjaz8KLSAgICAgICAgUkdCQTMyIHJnYjsKLSAgICAgICAgQ29sb3I6OnBh
cnNlSGV4Q29sb3IoY2hhcmFjdGVycyArIDEsIGxlbmd0aCAtIDEsIHJnYik7Ci0gICAgICAgIHJl
dHVybiBDb2xvcihyZ2IpOwotICAgIH0KKyAgICBpZiAobGVuZ3RoID49IDQgJiYgY2hhcmFjdGVy
c1swXSA9PSAnIycpCisgICAgICAgIHJldHVybiBDb2xvcjo6cGFyc2VIZXhDb2xvcihjaGFyYWN0
ZXJzICsgMSwgbGVuZ3RoIC0gMSwgcmdiKTsKIAogICAgIGlmIChxdWlya3NNb2RlICYmIChsZW5n
dGggPT0gMyB8fCBsZW5ndGggPT0gNikpIHsKLSAgICAgICAgUkdCQTMyIHJnYjsKICAgICAgICAg
aWYgKENvbG9yOjpwYXJzZUhleENvbG9yKGNoYXJhY3RlcnMsIGxlbmd0aCwgcmdiKSkKLSAgICAg
ICAgICAgIHJldHVybiBDb2xvcihyZ2IpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCiAgICAgLy8gVHJ5IHJnYmEoKSBzeW50YXguCkBAIC00MzgsMTYgKzQzMywxNyBAQCBzdGF0
aWMgQ29sb3IgZmFzdFBhcnNlQ29sb3JJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZQogICAgICAgICBpbnQgYWxwaGE7CiAKICAgICAgICAgaWYgKCFw
YXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIHJlZCkp
Ci0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywn
LCBleHBlY3QsIGdyZWVuKSkKLSAgICAgICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2Uo
Y3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgYmx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29s
b3IoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFwYXJzZUFscGhh
VmFsdWUoY3VycmVudCwgZW5kLCAnKScsIGFscGhhKSkKLSAgICAgICAgICAgIHJldHVybiBDb2xv
cigpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoY3VycmVudCAhPSBl
bmQpCi0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKLSAgICAgICAgcmV0dXJuIENvbG9yKG1h
a2VSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSk7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJnYiA9IG1ha2VSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gVHJ5IHJnYigpIHN5bnRheC4KQEAg
LTQ1OCwxNyArNDU0LDE4IEBAIHN0YXRpYyBDb2xvciBmYXN0UGFyc2VDb2xvckludGVybmFsKGNv
bnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlCiAgICAgICAgIGludCBn
cmVlbjsKICAgICAgICAgaW50IGJsdWU7CiAgICAgICAgIGlmICghcGFyc2VDb2xvckludE9yUGVy
Y2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCByZWQpKQotICAgICAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICghcGFy
c2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCBncmVlbikp
Ci0gICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJykn
LCBleHBlY3QsIGJsdWUpKQotICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChjdXJyZW50ICE9IGVuZCkKLSAgICAgICAgICAg
IHJldHVybiBDb2xvcigpOwotICAgICAgICByZXR1cm4gQ29sb3IobWFrZVJHQihyZWQsIGdyZWVu
LCBibHVlKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJnYiA9IG1ha2VS
R0IocmVkLCBncmVlbiwgYmx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHJldHVybiBDb2xvcigpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogUmVmUHRyPENTU1ZhbHVl
PiBDU1NQYXJzZXJGYXN0UGF0aHM6OnBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIENT
U1BhcnNlck1vZGUgcGFyc2VyTW9kZSkKQEAgLTQ4MSwxNSArNDc4LDE2IEBAIFJlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyRmFzdFBhdGhzOjpwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBDU1NQYXJzZXJNCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRl
bnRpZmllcih2YWx1ZUlEKTsKICAgICB9CiAKKyAgICBSR0JBMzIgY29sb3I7CiAgICAgYm9vbCBx
dWlya3NNb2RlID0gaXNRdWlya3NNb2RlQmVoYXZpb3IocGFyc2VyTW9kZSk7CiAKICAgICAvLyBG
YXN0IHBhdGggZm9yIGhleCBjb2xvcnMgYW5kIHJnYigpL3JnYmEoKSBjb2xvcnMKLSAgICBDb2xv
ciBjb2xvcjsKKyAgICBib29sIHBhcnNlUmVzdWx0OwogICAgIGlmIChzdHJpbmcuaXM4Qml0KCkp
Ci0gICAgICAgIGNvbG9yID0gZmFzdFBhcnNlQ29sb3JJbnRlcm5hbChzdHJpbmcuY2hhcmFjdGVy
czgoKSwgc3RyaW5nLmxlbmd0aCgpLCBxdWlya3NNb2RlKTsKKyAgICAgICAgcGFyc2VSZXN1bHQg
PSBmYXN0UGFyc2VDb2xvckludGVybmFsKGNvbG9yLCBzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3Ry
aW5nLmxlbmd0aCgpLCBxdWlya3NNb2RlKTsKICAgICBlbHNlCi0gICAgICAgIGNvbG9yID0gZmFz
dFBhcnNlQ29sb3JJbnRlcm5hbChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgo
KSwgcXVpcmtzTW9kZSk7Ci0gICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHBhcnNl
UmVzdWx0ID0gZmFzdFBhcnNlQ29sb3JJbnRlcm5hbChjb2xvciwgc3RyaW5nLmNoYXJhY3RlcnMx
NigpLCBzdHJpbmcubGVuZ3RoKCksIHF1aXJrc01vZGUpOworICAgIGlmICghcGFyc2VSZXN1bHQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUNvbG9yVmFsdWUoY29sb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGJkZGYw
MTZjN2MwOWY0ZDljNmZjN2E1OTI5NmMxODhkMDJjZjNjNTAuLjFjZDliMzZjMTVjZmI0ZjM5ZTIw
MmFlYTJiNTM2YjEzOTBiMjA2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTUwOSw3ICs1MDksNyBAQCBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVDb2xvcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZQogICAgIFJHQkEzMiBjb2xvciA9IENvbG9yOjp0cmFuc3Bh
cmVudDsKICAgICBpZiAoIXBhcnNlSGV4Q29sb3IocmFuZ2UsIGNvbG9yLCBhY2NlcHRRdWlya3lD
b2xvcnMpICYmICFwYXJzZUNvbG9yRnVuY3Rpb24ocmFuZ2UsIGNvbG9yKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoQ29sb3Io
Y29sb3IpKTsKKyAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKGNvbG9y
KTsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVBvc2l0aW9u
Q29tcG9uZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NWR0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL1NWR0NTU1BhcnNlci5jcHAKaW5kZXggOGFhNDljZTM5YzVlYTVmMDA0ODI3Y2ZlMzQ4ZmEy
MzBiNDc3NDVjZi4uZjUxNDNjOTcxMTBlMGQ4NzkxNmJjMTYzMWQ2ZDljYjUxYzIzOGFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TVkdDU1NQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU1ZHQ1NTUGFyc2VyLmNwcApAQCAtMTMxLDEwICsx
MzEsMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgZWxzZSBpZiAoaXNWYWxpZFN5c3RlbUNv
bnRyb2xDb2xvclZhbHVlKGlkKSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUpCiAgICAgICAgICAgICAg
ICAgcGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlQ29sb3IoUmVuZGVyVGhlbWU6OmRlZmF1
bHRUaGVtZSgpLT5zeXN0ZW1Db2xvcihpZCkpOwogICAgICAgICAgICAgZWxzZSBpZiAodmFsdWVX
aXRoQ2FsY3VsYXRpb24udmFsdWUoKS51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJ
KSB7CisgICAgICAgICAgICAgICAgUkdCQTMyIGMgPSBDb2xvcjo6dHJhbnNwYXJlbnQ7CiAgICAg
ICAgICAgICAgICAgaWYgKG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9yRnJvbVZhbHVlKCptX3ZhbHVlTGlzdC0+Y3VycmVu
dCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZVVSSUFuZENvbG9y
KHZhbHVlV2l0aENhbGN1bGF0aW9uLnZhbHVlKCkuc3RyaW5nLCBjb2xvcik7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChwYXJzZUNvbG9yRnJvbVZhbHVlKCptX3ZhbHVlTGlzdC0+Y3VycmVudCgp
LCBjKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNy
ZWF0ZVVSSUFuZENvbG9yKHZhbHVlV2l0aENhbGN1bGF0aW9uLnZhbHVlKCkuc3RyaW5nLCBjKTsK
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV92YWx1ZUxpc3QtPmN1cnJlbnQoKS0+aWQg
PT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBT
VkdQYWludDo6Y3JlYXRlVVJJQW5kTm9uZSh2YWx1ZVdpdGhDYWxjdWxhdGlvbi52YWx1ZSgpLnN0
cmluZyk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjg2LDE4ICsyODYsMTggQEAgUmVmUHRyPENT
U1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZVNWR1N0cm9rZURhc2hhcnJheSgpCiAKIFJlZlB0
cjxTVkdQYWludD4gQ1NTUGFyc2VyOjpwYXJzZVNWR1BhaW50KCkKIHsKLSAgICBDb2xvciBjb2xv
ciA9IHBhcnNlQ29sb3JGcm9tVmFsdWUoKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpOwotICAgIGlm
ICghY29sb3IuaXNWYWxpZCgpKQorICAgIFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50Owor
ICAgIGlmICghcGFyc2VDb2xvckZyb21WYWx1ZSgqbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYykp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBTVkdQYWludDo6Y3JlYXRlQ29s
b3IoY29sb3IpOworICAgIHJldHVybiBTVkdQYWludDo6Y3JlYXRlQ29sb3IoQ29sb3IoYykpOwog
fQogCiBSZWZQdHI8U1ZHQ29sb3I+IENTU1BhcnNlcjo6cGFyc2VTVkdDb2xvcigpCiB7Ci0gICAg
Q29sb3IgY29sb3IgPSBwYXJzZUNvbG9yRnJvbVZhbHVlKCptX3ZhbHVlTGlzdC0+Y3VycmVudCgp
KTsKLSAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICBSR0JBMzIgYyA9IENvbG9yOjp0cmFu
c3BhcmVudDsKKyAgICBpZiAoIXBhcnNlQ29sb3JGcm9tVmFsdWUoKm1fdmFsdWVMaXN0LT5jdXJy
ZW50KCksIGMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gU1ZHQ29sb3I6
OmNyZWF0ZUZyb21Db2xvcihjb2xvcik7CisgICAgcmV0dXJuIFNWR0NvbG9yOjpjcmVhdGVGcm9t
Q29sb3IoQ29sb3IoYykpOwogfQogCiBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6OnBh
cnNlUGFpbnRPcmRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5k
ZXggZjcxNzdjYmViMTBlNzMyNzY3ZjdhYjY5Y2FjZDk3ZDQ0NmUyNGMzNC4uNzc4ZmIxNDk3YWFi
NjcyODQ4ZTBkMDk5NjExODk5N2QxZmJjYzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ1N0eWxlLmNwcApAQCAtMzgyLDMzICszODIsMzUgQEAgRWRpdGluZ1N0eWxlOjp+RWRpdGlu
Z1N0eWxlKCkKIHsKIH0KIAotc3RhdGljIENvbG9yIGNzc1ZhbHVlVG9Db2xvcihDU1NWYWx1ZSog
Y29sb3JWYWx1ZSkKK3N0YXRpYyBSR0JBMzIgY3NzVmFsdWVUb1JHQkEoQ1NTVmFsdWUqIGNvbG9y
VmFsdWUpCiB7CiAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oY29sb3JWYWx1ZSkpCiAg
ICAgICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnQ7CiAgICAgCiAgICAgQ1NTUHJpbWl0aXZl
VmFsdWUmIHByaW1pdGl2ZUNvbG9yID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpjb2xv
clZhbHVlKTsKICAgICBpZiAocHJpbWl0aXZlQ29sb3IuaXNSR0JDb2xvcigpKQotICAgICAgICBy
ZXR1cm4gcHJpbWl0aXZlQ29sb3IuY29sb3IoKTsKKyAgICAgICAgcmV0dXJuIHByaW1pdGl2ZUNv
bG9yLmdldFJHQkEzMlZhbHVlKCk7CiAgICAgCi0gICAgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VD
b2xvcihjb2xvclZhbHVlLT5jc3NUZXh0KCkpOworICAgIFJHQkEzMiByZ2JhID0gMDsKKyAgICBD
U1NQYXJzZXI6OnBhcnNlQ29sb3IocmdiYSwgY29sb3JWYWx1ZS0+Y3NzVGV4dCgpKTsKKyAgICBy
ZXR1cm4gcmdiYTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBpbmxpbmUgQ29s
b3IgdGV4dENvbG9yRnJvbVN0eWxlKFQmIHN0eWxlKQorc3RhdGljIGlubGluZSBSR0JBMzIgdGV4
dENvbG9yRnJvbVN0eWxlKFQmIHN0eWxlKQogewotICAgIHJldHVybiBjc3NWYWx1ZVRvQ29sb3Io
ZXh0cmFjdFByb3BlcnR5VmFsdWUoc3R5bGUsIENTU1Byb3BlcnR5Q29sb3IpLmdldCgpKTsKKyAg
ICByZXR1cm4gY3NzVmFsdWVUb1JHQkEoZXh0cmFjdFByb3BlcnR5VmFsdWUoc3R5bGUsIENTU1By
b3BlcnR5Q29sb3IpLmdldCgpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBp
bmxpbmUgQ29sb3IgYmFja2dyb3VuZENvbG9yRnJvbVN0eWxlKFQmIHN0eWxlKQorc3RhdGljIGlu
bGluZSBSR0JBMzIgYmFja2dyb3VuZENvbG9yRnJvbVN0eWxlKFQmIHN0eWxlKQogewotICAgIHJl
dHVybiBjc3NWYWx1ZVRvQ29sb3IoZXh0cmFjdFByb3BlcnR5VmFsdWUoc3R5bGUsIENTU1Byb3Bl
cnR5QmFja2dyb3VuZENvbG9yKS5nZXQoKSk7CisgICAgcmV0dXJuIGNzc1ZhbHVlVG9SR0JBKGV4
dHJhY3RQcm9wZXJ0eVZhbHVlKHN0eWxlLCBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikuZ2V0
KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIENvbG9yIHJnYmFCYWNrZ3JvdW5kQ29sb3JJbkVmZmVj
dChOb2RlKiBub2RlKQorc3RhdGljIGlubGluZSBSR0JBMzIgcmdiYUJhY2tncm91bmRDb2xvcklu
RWZmZWN0KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIGNzc1ZhbHVlVG9Db2xvcihiYWNrZ3Jv
dW5kQ29sb3JJbkVmZmVjdChub2RlKS5nZXQoKSk7CisgICAgcmV0dXJuIGNzc1ZhbHVlVG9SR0JB
KGJhY2tncm91bmRDb2xvckluRWZmZWN0KG5vZGUpLmdldCgpKTsKIH0KIAogc3RhdGljIGludCB0
ZXh0QWxpZ25SZXNvbHZpbmdTdGFydEFuZEVuZChpbnQgdGV4dEFsaWduLCBpbnQgZGlyZWN0aW9u
KQpAQCAtMTA5NCw3ICsxMDk2LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnByZXBhcmVUb0FwcGx5
QXQoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBTaG91bGRQcmVzZXJ2ZVdyaXQKICAgICAgICAg
bV9tdXRhYmxlU3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5Q29sb3IpOwogCiAgICAg
aWYgKGhhc1RyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yKG1fbXV0YWJsZVN0eWxlLmdldCgpKQot
ICAgICAgICB8fCBjc3NWYWx1ZVRvQ29sb3IobV9tdXRhYmxlU3R5bGUtPmdldFByb3BlcnR5Q1NT
VmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmdldCgpKSA9PSByZ2JhQmFja2dyb3Vu
ZENvbG9ySW5FZmZlY3QocG9zaXRpb24uY29udGFpbmVyTm9kZSgpKSkKKyAgICAgICAgfHwgY3Nz
VmFsdWVUb1JHQkEobV9tdXRhYmxlU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpLmdldCgpKSA9PSByZ2JhQmFja2dyb3VuZENvbG9ySW5FZmZlY3Qo
cG9zaXRpb24uY29udGFpbmVyTm9kZSgpKSkKICAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnJlbW92
ZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKIAogICAgIGlmIChpczxDU1NQ
cmltaXRpdmVWYWx1ZT4odW5pY29kZUJpZGkuZ2V0KCkpKSB7CkBAIC0xODM4LDcgKzE4NDAsNyBA
QCBib29sIGlzVHJhbnNwYXJlbnRDb2xvclZhbHVlKENTU1ZhbHVlKiBjc3NWYWx1ZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlJiB2YWx1ZSA9IGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqY3NzVmFsdWUpOwogICAgIGlmICh2YWx1ZS5pc1JHQkNvbG9y
KCkpCi0gICAgICAgIHJldHVybiB2YWx1ZS5jb2xvcigpLmhhc0FscGhhKCk7CisgICAgICAgIHJl
dHVybiAhYWxwaGFDaGFubmVsKHZhbHVlLmdldFJHQkEzMlZhbHVlKCkpOwogICAgIHJldHVybiB2
YWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVUcmFuc3BhcmVudDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IGU0MmZjZTZjMGIw
NTYyYTA1OGM3YWFmNmJjNWFiZjg2ZWFkYjg2MmQuLjRhZWM5NzQ1NmY2OTUwMDc2NzRmODVkMjZi
MDc3MGIyN2UzZTg4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0KQEAgLTk4OSwxMyArOTg5LDEzIEBAIENvbG9yIEhUTUxDb252ZXJ0ZXJDYWNo
ZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBw
CiAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOwogICAgIGlm
IChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gY29tcHV0ZWRTdHlsZVByb3BlcnR5Rm9yRWxlbWVu
dChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuaXNSR0JD
b2xvcigpKQotICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRDb2xvcihDb2xvcihkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigpLnJnYigpKSwgcHJvcGVydHlJZCA9
PSBDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkQ29sb3Io
Q29sb3IoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZ2V0UkdCQTMyVmFsdWUo
KSksIHByb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlDb2xvcik7CiAgICAgfQogCiAgICAgYm9vbCBp
bmhlcml0ID0gZmFsc2U7CiAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVT
dHlsZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBp
ZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkuaXNSR0JDb2xvcigpKQotICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6
ZWRDb2xvcihDb2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigp
LnJnYigpKSwgcHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICAgICAgICAgIHJl
dHVybiBub3JtYWxpemVkQ29sb3IoQ29sb3IoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2
YWx1ZSkuZ2V0UkdCQTMyVmFsdWUoKSksIHByb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlDb2xvcik7
CiAgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQogICAgICAgICAgICAgaW5o
ZXJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3Bw
CmluZGV4IGZkY2YzOTlkMzZlNmEyZTgyNWRkYjg1ZjlhMjM0MWVjOTAyNDk1NDMuLjhhMWM2MGQ0
ZGI0YmM1YWMwYTNlNjIyNjNhOTYxYjcyYWFmZDA3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTE1OCw4ICsxNTgsOCBAQCB2b2lkIEhUTUxCb2R5RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGRvY3VtZW50KCkucmVzZXRB
Y3RpdmVMaW5rQ29sb3IoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIENvbG9yIGNv
bG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHZhbHVlLCAhZG9jdW1lbnQoKS5pblF1aXJrc01v
ZGUoKSk7Ci0gICAgICAgICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBS
R0JBMzIgY29sb3I7CisgICAgICAgICAgICBpZiAoQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbG9y
LCB2YWx1ZSwgIWRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCkpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKG5hbWUgPT0gbGlua0F0dHIpCiAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuc2V0
TGlua0NvbG9yKGNvbG9yKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09IHZsaW5r
QXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRp
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcApp
bmRleCBiN2I2NTQwOTEwY2JiMjljYTExOWFhZTYwOWRkNDVhOTc3MWFkZmRjLi5kNGE0NmU4Njcz
ZWUzMmNmMzlhNWM0MzRlNmNhOWMzODQ5MTYzNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCkBAIC01MCwxNSArNTAsMTUgQEAgQ2FudmFzR3Jh
ZGllbnQ6OkNhbnZhc0dyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBmbG9hdCByMCwgY29u
c3QgRmxvYXRQb2ludCYKIHsKIH0KIAotdm9pZCBDYW52YXNHcmFkaWVudDo6YWRkQ29sb3JTdG9w
KGZsb2F0IHZhbHVlLCBjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgQ2FudmFzR3JhZGllbnQ6OmFkZENvbG9yU3RvcChmbG9hdCB2YWx1ZSwgY29uc3Qg
U3RyaW5nJiBjb2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCEodmFsdWUgPj0g
MCAmJiB2YWx1ZSA8PSAxLjBmKSkgewogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9yT3JDdXJy
ZW50Q29sb3IoY29sb3JTdHJpbmcsIDAgLypjYW52YXMqLyk7Ci0gICAgaWYgKCFjb2xvci5pc1Zh
bGlkKCkpIHsKKyAgICBSR0JBMzIgcmdiYSA9IDA7CisgICAgaWYgKCFwYXJzZUNvbG9yT3JDdXJy
ZW50Q29sb3IocmdiYSwgY29sb3IsIDAgLypjYW52YXMqLykpIHsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCiAgICAgICAgIGlmICghbV9kYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkK
ICAgICAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBDYW52
YXNHcmFkaWVudDo6YWRkQ29sb3JTdG9wKGZsb2F0IHZhbHVlLCBjb25zdCBTdHJpbmcmIGNvbG9y
U3RyaW5nLCBFeGNlcHQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZ3JhZGllbnQt
PmFkZENvbG9yU3RvcCh2YWx1ZSwgY29sb3IpOworICAgIG1fZ3JhZGllbnQtPmFkZENvbG9yU3Rv
cCh2YWx1ZSwgQ29sb3IocmdiYSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
aW5kZXggNmM4Yjg1Mjk2ZWQ5MjhiNTM3Mjk1ZjIyNjYzNTNlNmQzM2RlNDNjMS4uNzk5NmRiYTUz
NDMyNDcxZTYzODc2ZjQxNmFmZWUxNzI1Zjk1MjI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC00MDQs
MTAgKzQwNCw5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VTdHls
ZShDYW52YXNTdHlsZSBzdHlsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0eWxlLmlz
Q3VycmVudENvbG9yKCkpIHsKLSAgICAgICAgaWYgKHN0eWxlLmhhc092ZXJyaWRlQWxwaGEoKSkg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgotICAg
ICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVycmlkZUFscGhhKGN1cnJl
bnRDb2xvcihjYW52YXMoKSkucmdiKCksIHN0eWxlLm92ZXJyaWRlQWxwaGEoKSkpOwotICAgICAg
ICB9IGVsc2UKKyAgICAgICAgaWYgKHN0eWxlLmhhc092ZXJyaWRlQWxwaGEoKSkKKyAgICAgICAg
ICAgIHN0eWxlID0gQ2FudmFzU3R5bGUoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjdXJyZW50Q29s
b3IoY2FudmFzKCkpLCBzdHlsZS5vdmVycmlkZUFscGhhKCkpKTsKKyAgICAgICAgZWxzZQogICAg
ICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjdXJyZW50Q29sb3IoY2FudmFzKCkpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgY2hlY2tPcmlnaW4oc3R5bGUuY2FudmFzUGF0dGVybigpKTsKQEAg
LTQzMSwxMCArNDMwLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZpbGxT
dHlsZShDYW52YXNTdHlsZSBzdHlsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0eWxl
LmlzQ3VycmVudENvbG9yKCkpIHsKLSAgICAgICAgaWYgKHN0eWxlLmhhc092ZXJyaWRlQWxwaGEo
KSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgot
ICAgICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVycmlkZUFscGhhKGN1
cnJlbnRDb2xvcihjYW52YXMoKSkucmdiKCksIHN0eWxlLm92ZXJyaWRlQWxwaGEoKSkpOwotICAg
ICAgICB9IGVsc2UKKyAgICAgICAgaWYgKHN0eWxlLmhhc092ZXJyaWRlQWxwaGEoKSkKKyAgICAg
ICAgICAgIHN0eWxlID0gQ2FudmFzU3R5bGUoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjdXJyZW50
Q29sb3IoY2FudmFzKCkpLCBzdHlsZS5vdmVycmlkZUFscGhhKCkpKTsKKyAgICAgICAgZWxzZQog
ICAgICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjdXJyZW50Q29sb3IoY2FudmFzKCkpKTsK
ICAgICB9IGVsc2UKICAgICAgICAgY2hlY2tPcmlnaW4oc3R5bGUuY2FudmFzUGF0dGVybigpKTsK
QEAgLTU4MCwxNSArNTc4LDE1IEBAIFN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNo
YWRvd0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gQ29sb3Ioc3RhdGUoKS5zaGFkb3dDb2xvciku
c2VyaWFsaXplZCgpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U2hh
ZG93Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpzZXRTaGFkb3dDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQogewotICAgIENv
bG9yIGNvbG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCBjYW52YXMo
KSk7Ci0gICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgUkdCQTMyIHJnYmE7CisgICAgaWYg
KCFwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IocmdiYSwgY29sb3IsIGNhbnZhcygpKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmIChzdGF0ZSgpLnNoYWRvd0NvbG9yID09IGNvbG9yKQorICAgIGlm
IChzdGF0ZSgpLnNoYWRvd0NvbG9yID09IHJnYmEpCiAgICAgICAgIHJldHVybjsKICAgICByZWFs
aXplU2F2ZXMoKTsKLSAgICBtb2RpZmlhYmxlU3RhdGUoKS5zaGFkb3dDb2xvciA9IGNvbG9yOwor
ICAgIG1vZGlmaWFibGVTdGF0ZSgpLnNoYWRvd0NvbG9yID0gcmdiYTsKICAgICBhcHBseVNoYWRv
dygpOwogfQogCkBAIC0xMjUwLDE1ICsxMjQ4LDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
CiAgICAgfQogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U2hhZG93KGZs
b2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0cmluZyYgY29sb3JT
dHJpbmcsIE9wdGlvbmFsPGZsb2F0PiBhbHBoYSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpzZXRTaGFkb3coZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgYmx1ciwgY29u
c3QgU3RyaW5nJiBjb2xvciwgT3B0aW9uYWw8ZmxvYXQ+IGFscGhhKQogewotICAgIENvbG9yIGNv
bG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCBjYW52YXMoKSk7Ci0g
ICAgaWYgKCFjb2xvclN0cmluZy5pc051bGwoKSAmJiAhY29sb3IuaXNWYWxpZCgpKQorICAgIFJH
QkEzMiByZ2JhID0gQ29sb3I6OnRyYW5zcGFyZW50OworICAgIGlmICghY29sb3IuaXNOdWxsKCkg
JiYgIXBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihyZ2JhLCBjb2xvciwgY2FudmFzKCkpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIGNvbG9yID0g
Q29sb3I6OnRyYW5zcGFyZW50OwotICAgIC8vIEZJWE1FOiBTaG91bGQgbm90IHVzZSBSR0JBMzIg
aGVyZS4KLSAgICBzZXRTaGFkb3coRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpLCBibHVyLCBjb2xv
cldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkpOworICAgIHNldFNoYWRvdyhG
bG9hdFNpemUod2lkdGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEocmdi
YSwgYWxwaGEpKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFNoYWRv
dyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBibHVyLCBmbG9hdCBncmF5TGV2ZWws
IGZsb2F0IGFscGhhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3Bw
CmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMyMzE1NjVlMDIxMzYuLmI5ZjdhZWM4
MGYzMGZjNTU1MjMyYjBlOGMwYzhjMjA0MzFkMDJiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTQzLDM2ICs0Myw0NCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIGlzQ3VycmVudENvbG9yU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgY29sb3JTdHJpbmcpCi17Ci0gICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGNvbG9yU3RyaW5nLCAiY3VycmVudGNvbG9yIik7Ci19CitlbnVtIENvbG9yUGFyc2VSZXN1
bHQgeyBQYXJzZWRSR0JBLCBQYXJzZWRDdXJyZW50Q29sb3IsIFBhcnNlZFN5c3RlbUNvbG9yLCBQ
YXJzZUZhaWxlZCB9OwogCi1zdGF0aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIGNv
bG9yU3RyaW5nLCBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyKQorc3RhdGljIENvbG9yUGFy
c2VSZXN1bHQgcGFyc2VDb2xvcihSR0JBMzImIHBhcnNlZENvbG9yLCBjb25zdCBTdHJpbmcmIGNv
bG9yU3RyaW5nLCBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyKQogewotICAgIENvbG9yIGNv
bG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbG9yU3RyaW5nKTsKLSAgICBpZiAoY29sb3Iu
aXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gY29sb3I7Ci0KLSAgICByZXR1cm4gQ1NTUGFyc2Vy
OjpwYXJzZVN5c3RlbUNvbG9yKGNvbG9yU3RyaW5nLCBkb2N1bWVudCk7CisgICAgaWYgKGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbG9yU3RyaW5nLCAiY3VycmVudGNvbG9yIikpCisg
ICAgICAgIHJldHVybiBQYXJzZWRDdXJyZW50Q29sb3I7CisgICAgaWYgKENTU1BhcnNlcjo6cGFy
c2VDb2xvcihwYXJzZWRDb2xvciwgY29sb3JTdHJpbmcpKQorICAgICAgICByZXR1cm4gUGFyc2Vk
UkdCQTsKKyAgICBpZiAoQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKHBhcnNlZENvbG9yLCBj
b2xvclN0cmluZywgZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gUGFyc2VkU3lzdGVtQ29sb3I7
CisgICAgcmV0dXJuIFBhcnNlRmFpbGVkOwogfQogCi1Db2xvciBjdXJyZW50Q29sb3IoSFRNTENh
bnZhc0VsZW1lbnQqIGNhbnZhcykKK1JHQkEzMiBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1l
bnQqIGNhbnZhcykKIHsKICAgICBpZiAoIWNhbnZhcyB8fCAhY2FudmFzLT5pbkRvY3VtZW50KCkg
fHwgIWNhbnZhcy0+aW5saW5lU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIENvbG9yOjpibGFjazsK
LSAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcihjYW52YXMtPmlubGluZVN0
eWxlKCktPmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlDb2xvcikpOwotICAgIGlmICghY29s
b3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gQ29sb3I6OmJsYWNrOwotICAgIHJldHVybiBj
b2xvcjsKKyAgICBSR0JBMzIgcmdiYSA9IENvbG9yOjpibGFjazsKKyAgICBDU1NQYXJzZXI6OnBh
cnNlQ29sb3IocmdiYSwgY2FudmFzLT5pbmxpbmVTdHlsZSgpLT5nZXRQcm9wZXJ0eVZhbHVlKENT
U1Byb3BlcnR5Q29sb3IpKTsKKyAgICByZXR1cm4gcmdiYTsKIH0KIAotQ29sb3IgcGFyc2VDb2xv
ck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMpCitib29sIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihSR0JBMzImIHBhcnNl
ZENvbG9yLCBjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCogY2Fu
dmFzKQogewotICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAg
ICAgIHJldHVybiBjdXJyZW50Q29sb3IoY2FudmFzKTsKLQotICAgIHJldHVybiBwYXJzZUNvbG9y
KGNvbG9yU3RyaW5nLCBjYW52YXMgPyAmY2FudmFzLT5kb2N1bWVudCgpIDogbnVsbHB0cik7Cisg
ICAgQ29sb3JQYXJzZVJlc3VsdCBwYXJzZVJlc3VsdCA9IHBhcnNlQ29sb3IocGFyc2VkQ29sb3Is
IGNvbG9yU3RyaW5nLCBjYW52YXMgPyAmY2FudmFzLT5kb2N1bWVudCgpIDogMCk7CisgICAgc3dp
dGNoIChwYXJzZVJlc3VsdCkgeworICAgIGNhc2UgUGFyc2VkUkdCQToKKyAgICBjYXNlIFBhcnNl
ZFN5c3RlbUNvbG9yOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFBhcnNlZEN1cnJl
bnRDb2xvcjoKKyAgICAgICAgcGFyc2VkQ29sb3IgPSBjdXJyZW50Q29sb3IoY2FudmFzKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBQYXJzZUZhaWxlZDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUo
Q29sb3IgY29sb3IpCkBAIC0xMjUsMjggKzEzMywzOSBAQCBDYW52YXNTdHlsZTo6fkNhbnZhc1N0
eWxlKCkKICAgICAgICAgZGVsZXRlIG1fY215a2E7CiB9CiAKLUNhbnZhc1N0eWxlIENhbnZhc1N0
eWxlOjpjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50
KiBkb2N1bWVudCkKK0NhbnZhc1N0eWxlIENhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgY29sb3IsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBpZiAoaXNDdXJy
ZW50Q29sb3JTdHJpbmcoY29sb3JTdHJpbmcpKQorICAgIFJHQkEzMiByZ2JhOworICAgIENvbG9y
UGFyc2VSZXN1bHQgcGFyc2VSZXN1bHQgPSBwYXJzZUNvbG9yKHJnYmEsIGNvbG9yLCBkb2N1bWVu
dCk7CisgICAgc3dpdGNoIChwYXJzZVJlc3VsdCkgeworICAgIGNhc2UgUGFyc2VkUkdCQToKKyAg
ICBjYXNlIFBhcnNlZFN5c3RlbUNvbG9yOgorICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUocmdi
YSk7CisgICAgY2FzZSBQYXJzZWRDdXJyZW50Q29sb3I6CiAgICAgICAgIHJldHVybiBDYW52YXNT
dHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOwotCi0gICAgQ29sb3IgY29sb3IgPSBwYXJzZUNv
bG9yKGNvbG9yU3RyaW5nLCBkb2N1bWVudCk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yKTsKLQotICAgIHJldHVybiBDYW52YXNTdHls
ZSgpOworICAgIGNhc2UgUGFyc2VGYWlsZWQ6CisgICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICB9CiB9CiAKLUNhbnZhc1N0eWxlIENhbnZhc1N0eWxl
OjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvclN0
cmluZywgZmxvYXQgYWxwaGEpCitDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0
cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0IGFscGhhKQog
ewotICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCisgICAgUkdCQTMy
IHJnYmE7CisgICAgQ29sb3JQYXJzZVJlc3VsdCBwYXJzZVJlc3VsdCA9IHBhcnNlQ29sb3Iocmdi
YSwgY29sb3IpOworICAgIHN3aXRjaCAocGFyc2VSZXN1bHQpIHsKKyAgICBjYXNlIFBhcnNlZFJH
QkE6CisgICAgICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVycmlkZUFscGhhKHJn
YmEsIGFscGhhKSk7CisgICAgY2FzZSBQYXJzZWRDdXJyZW50Q29sb3I6CiAgICAgICAgIHJldHVy
biBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSwgYWxwaGEpOwotCi0g
ICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5nKTsKLSAgICBpZiAoY29sb3Iu
aXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3JXaXRoT3ZlcnJpZGVB
bHBoYShjb2xvci5yZ2IoKSwgYWxwaGEpKTsKLQotICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwor
ICAgIGNhc2UgUGFyc2VGYWlsZWQ6CisgICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgpOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
Q2FudmFzU3R5bGUoKTsKKyAgICB9CiB9CiAKIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVu
dENvbG9yKGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IDU2OTExMWZiZTFjNDNkMmE2YTQzNDE5ZjIyNmMw
Yjc3MTdiM2NmNjcuLjM5MDhlODU2NjMzOTQ3NzY1NGJlMWVlNmY2OTgxN2ZkZGY3ZTYyNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMTEzLDggKzExMyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgfTsKIAot
ICAgIENvbG9yIGN1cnJlbnRDb2xvcihIVE1MQ2FudmFzRWxlbWVudCopOwotICAgIENvbG9yIHBh
cnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2Fu
dmFzRWxlbWVudCopOworICAgIFJHQkEzMiBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQq
KTsKKyAgICBib29sIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihSR0JBMzImIHBhcnNlZENvbG9y
LCBjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOwogCiAgICAg
aW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgpCiAgICAgICAgIDogbV90eXBlKEludmFs
aWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCA1MDQzNmM2
Mzg1YmU3ODdjNmRhNzhiZGM5ODcxMzJjOGRhYzY5YTZmLi44ZmE4ZTRjOWZlOGJlODkzNDcxYzAz
NjBhODk5YTUzMDgyZjg4YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmgKQEAgLTE0MSwyMyArMTQxLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4
cGxpY2l0IENvbG9yKGNvbnN0IFN0cmluZyYpOwogICAgIGV4cGxpY2l0IENvbG9yKGNvbnN0IGNo
YXIqKTsKIAotICAgIGV4cGxpY2l0IENvbG9yKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlw
ZSkKLSAgICB7Ci0gICAgICAgIG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyA9IDB4ZmZmZmZmZmZm
ZmZmZmZmZDsKLSAgICAgICAgQVNTRVJUKCFpc0V4dGVuZGVkKCkpOwotICAgIH0KLQotICAgIGJv
b2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyA9PSAweGZmZmZmZmZmZmZmZmZmZmQ7Ci0gICAgfQot
Ci0gICAgZXhwbGljaXQgQ29sb3IoV1RGOjpIYXNoVGFibGVFbXB0eVZhbHVlVHlwZSkKLSAgICB7
Ci0gICAgICAgIG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyA9IDB4ZmZmZmZmZmZmZmZmZmZiOwot
ICAgICAgICBBU1NFUlQoIWlzRXh0ZW5kZWQoKSk7Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IEFk
ZCBjb25zdHJ1Y3RvciBmb3IgRXh0ZW5kZWRDb2xvciB0eXBlLgogCiAgICAgQ29sb3IoUkdCQSwg
Q29sb3JTcGFjZSk7CkBAIC0yMDEsNyArMTg0LDYgQEAgcHVibGljOgogICAgIFJHQkEzMiByZ2Io
KSBjb25zdCB7IEFTU0VSVCghaXNFeHRlbmRlZCgpKTsgcmV0dXJuIHN0YXRpY19jYXN0PFJHQkEz
Mj4obV9jb2xvckRhdGEucmdiYUFuZEZsYWdzID4+IDMyKTsgfQogICAgIHZvaWQgc2V0UkdCKGlu
dCByLCBpbnQgZywgaW50IGIpIHsgc2V0UkdCKG1ha2VSR0IociwgZywgYikpOyB9CiAgICAgdm9p
ZCBzZXRSR0IoUkdCQTMyKTsKLSAgICB1aW50NjRfdCBhc1VpbnQ2NCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29sb3JEYXRhLnJnYmFBbmRGbGFnczsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBn
ZXRSR0JBKGZsb2F0JiByLCBmbG9hdCYgZywgZmxvYXQmIGIsIGZsb2F0JiBhKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFJHQkEoZG91YmxlJiByLCBkb3VibGUmIGcsIGRvdWJs
ZSYgYiwgZG91YmxlJiBhKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9ySGFzaC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JIYXNoLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NGUxYTFkNDA1
MWYyYmJjMWY3MmU2NTE5OTQwZGM1YmY3ZWM5ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JIYXNoLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KLQot
bmFtZXNwYWNlIFdURiB7Ci0KLXN0cnVjdCBDb2xvckhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBrZXkpIHsgcmV0dXJuIGludEhhc2goa2V5LmFz
VWludDY0KCkpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGEsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpDb2xvcj4gewotICAgIHR5
cGVkZWYgQ29sb3JIYXNoIEhhc2g7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRz
PFdlYkNvcmU6OkNvbG9yPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OkNvbG9yPiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwotICAgIHN0YXRp
YyBXZWJDb3JlOjpDb2xvciBlbXB0eVZhbHVlKCkgeyByZXR1cm4gV2ViQ29yZTo6Q29sb3IoSGFz
aFRhYmxlRW1wdHlWYWx1ZSk7IH0KLQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShXZWJDb3JlOjpDb2xvciYgc2xvdCkgeyBuZXcgKE5vdE51bGwsICZzbG90KSBXZWJDb3Jl
OjpDb2xvcihIYXNoVGFibGVEZWxldGVkVmFsdWUpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxl
dGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29sb3IuY3BwCmluZGV4IDFkMDEzYjFmZGM5ZDM0NjdmNDdjZmM0NTI0NTQ5ZWVkMGRm
YWE2NzkuLjQwZGM0YWQ0YmM2NjcxZDdhOGE4ZGEzMGZkODI3YjI3NjA2YzRiMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NvbG9yLmNwcApAQCAtNTEsNyArNTEsMTAgQEAgQ29sb3IgU1ZHQ29sb3I6OmNvbG9y
RnJvbVJHQkNvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcpCiAgICAgLy8gRklY
TUU6IFJld29yayBDU1MgcGFyc2VyIHNvIGl0IGV4YWN0bHkgbWF0Y2hlcyB3aGF0IHRoZSBTVkcg
c3BlY2lmaWNhdGlvbiByZXF1aXJlcz8KICAgICAvLyBGSVhNRTogTW92ZSB0aGlzIG91dCBvZiB0
aGUgU1ZHQ29sb3IgY2xhc3M/CiAgICAgLy8gRklYTUU6IElzIGl0IHJlYWxseSBPSyB0byBkbyBz
dHJpcFdoaXRlc3BhY2UgaGVyZSBpbnN0ZWFkIG9mIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcz8KLSAgICByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbG9yU3RyaW5nLnN0
cmlwV2hpdGVTcGFjZSgpKTsKKyAgICBSR0JBMzIgY29sb3I7CisgICAgaWYgKENTU1BhcnNlcjo6
cGFyc2VDb2xvcihjb2xvciwgY29sb3JTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpKQorICAgICAg
ICByZXR1cm4gY29sb3I7CisgICAgcmV0dXJuIENvbG9yKCk7CiB9CiAKIHZvaWQgU1ZHQ29sb3I6
OnNldFJHQkNvbG9yKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>