<?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>120481</bug_id>
          
          <creation_ts>2013-08-29 11:31:28 -0700</creation_ts>
          <short_desc>REGRESSION(r154821): Broke non-DFG build. StackIterator::Frame::setToEnd() should not be conditional on #if ENABLE(DFG_JIT). (Requested by bfulgham on #webkit).</short_desc>
          <delta_ts>2013-08-29 12:06:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>119657</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922567</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 11:31:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/154821 broke the build:
Broke Windows build. Assumes &apos;setToEnd&apos; part of StackIterator::Frame on Windows. (Requested by bfulgham 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>922569</commentid>
    <comment_count>1</comment_count>
      <attachid>210006</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 11:31:53 -0700</bug_when>
    <thetext>Created attachment 210006
ROLLOUT of r154821

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>922575</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-29 11:43:43 -0700</bug_when>
    <thetext>Landed a gardening fix in r154827: &lt;http://trac.webkit.org/r154827&gt;.

Basically, StackIterator::Frame::setToEnd() is not supposed to be conditional on #if ENABLE(DFG_JIT).  The fix is simply to remove the #if ENABLE(DFG_JIT).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922590</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-29 12:04:36 -0700</bug_when>
    <thetext>The Windows bots are green after landing r154827.  Closing as fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210006</attachid>
            <date>2013-08-29 11:31:53 -0700</date>
            <delta_ts>2013-08-29 11:33:36 -0700</delta_ts>
            <desc>ROLLOUT of r154821</desc>
            <filename>bug-120481-20130829113152.patch</filename>
            <type>text/plain</type>
            <size>32623</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0ODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTU2M2YxZDU3MGM0MGIyZDEwMGQ4NDYxNzRlZjYzZmE4YTI3MDkzLi4zZDMwYTNmOWQ4Yzg5Mzk3
N2Y2NTk5MTRmZDE1YTQ0YWU4ZmY1MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxMy0wOC0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1NDgyMS4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTU0ODIxCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA0ODEKKworICAgICAgICBCcm9r
ZSBXaW5kb3dzIGJ1aWxkLiBBc3N1bWVzICdzZXRUb0VuZCcgcGFydCBvZgorICAgICAgICBTdGFj
a0l0ZXJhdG9yOjpGcmFtZSBvbiBXaW5kb3dzLiAoUmVxdWVzdGVkIGJ5IGJmdWxnaGFtIG9uCisg
ICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxs
RnJhbWU6OmVuZCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAg
ICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrSXRl
cmF0b3I6OlN0YWNrSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpudW1i
ZXJPZkZyYW1lcyk6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OmdvdG9GcmFtZUF0SW5k
ZXgpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpnb3RvTmV4dEZyYW1lKToKKyAgICAg
ICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6cmVzZXRJdGVyYXRvcik6CisgICAgICAgIChKU0M6OlN0
YWNrSXRlcmF0b3I6OmZpbmQpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6
Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6YXJn
dW1lbnRzKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6RnJhbWU6OmxvZ2ljYWxGcmFt
ZSk6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjpsb2dpY2FsQ2FsbGVyRnJh
bWUpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQpOgorICAgICAg
ICAoZGVidWdQcmludENhbGxGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVy
YXRvci5oOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6RnJhbWU6OmlzSlNGcmFtZSk6CisgICAgICAgIChK
U0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjpjYWxsRnJhbWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL1N0YWNrSXRlcmF0b3JQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpTdGFja0l0
ZXJhdG9yOjpvcGVyYXRvciopOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpvcGVyYXRv
ci0+KToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChKU0M6OlN0YWNrSXRlcmF0b3I6Om9wZXJhdG9yIT0pOgorICAgICAgICAoSlNDOjpTdGFja0l0
ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6ZW5kKToK
KwogMjAxMy0wOC0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IENvZGVCbG9jayBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIHNob3VsZCBiZSBzaW1wbGlm
aWVkIGFuZCByYXRpb25hbGl6ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggN2Y2NzAzZjYxZWM1MjYwYTFkOTExNThmZDhlOWFhNzUwOTBkZDZkZC4uMmFl
ZGRiMTYwNzc4NWEwNWEyOTgzYTYyMDJhNzE5NmRkZDg0NGFlZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU4Myw2ICs1ODMsNyBAQCBqYXZhc2NyaXB0
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0
b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRv
ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvclBy
aXZhdGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1ZNSW5zcGVjdG9y
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1ZNSW5zcGVjdG9yLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IDE2ZTE5YjA2NTgxNTA4NTVlMGEx
OGY3ZDdmOWYyOTZmODUyYjcwMjkuLmRiMGU4YWFjZWQ3ZDJmMDBmMDgxZmJkMWNkYjhjN2QyNDMx
MTljMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNzMyLDYg
KzczMiw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxKU1N0YWNr
SW5saW5lcy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXFJl
Z2lzdGVyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcU3Rh
Y2tJdGVyYXRvci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVy
XFN0YWNrSXRlcmF0b3JQcml2YXRlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW50ZXJwcmV0ZXJcVk1JbnNwZWN0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxqaXRcQ2xvc3VyZUNhbGxTdHViUm91dGluZS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGppdFxDb21wYWN0SklUQ29kZU1hcC5oIiAvPg0KQEAgLTEwMjYsNCArMTAyNyw0IEBA
CiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+DQogICAgIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0
cyIgLz4NCiAgIDwvSW1wb3J0R3JvdXA+DQotPC9Qcm9qZWN0Pg0KKzwvUHJvamVjdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxMjM3
YjA2N2M4YWFiZDM4MjdlNTRlN2FlNDliYWY2YTQ1Y2Y3NTYxLi5mM2RlZmM1Mjg2Mjc1N2RmYTMz
Y2EwNWJmMGVhYzA3MWM1ZTY1YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMzEzLDYgKzEzMTMsOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcU3RhY2tJdGVyYXRvci5oIj4NCiAgICAgICA8Rmls
dGVyPmludGVycHJldGVyPC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXFN0YWNrSXRlcmF0b3JQcml2YXRlLmgiPg0KKyAg
ICAgIDxGaWx0ZXI+aW50ZXJwcmV0ZXI8L0ZpbHRlcj4NCisgICAgPC9DbEluY2x1ZGU+DQogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcVk1JbnNwZWN0b3IuaCI+DQogICAg
ICAgPEZpbHRlcj5pbnRlcnByZXRlcjwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCkBAIC0y
MjI1LDQgKzIyMjgsNCBAQAogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4NCiAgICAgPC9NQVNN
Pg0KICAgPC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0Pg0KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRlMzUzNzAx
NjEwZDdhZmUzOTAyNjEyNTI1ODVjZTY3ZjRmNTBkNDYuLjlmNzExMmI0NjgwNDg5NDMxNTc2NTc2
ZmY2N2JkMWFlOTUxMTA1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDcs
NiArOTA3LDcgQEAKIAkJQTdDMUVBRjAxNzk4N0FCNjAwMjk5REIyIC8qIEpTU3RhY2tJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MxRUFF
QjE3OTg3QUI2MDAyOTlEQjIgLyogSlNTdGFja0lubGluZXMuaCAqLzsgfTsKIAkJQTdDMUVBRjEx
Nzk4N0FCNjAwMjk5REIyIC8qIFN0YWNrSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDMUVBRUMxNzk4N0FCNjAwMjk5REIyIC8qIFN0
YWNrSXRlcmF0b3IuY3BwICovOyB9OwogCQlBN0MxRUFGMjE3OTg3QUI2MDAyOTlEQjIgLyogU3Rh
Y2tJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTdDMUVBRUQxNzk4N0FCNjAwMjk5REIyIC8qIFN0YWNrSXRlcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBN0MxRUFGMzE3OTg3QUI2
MDAyOTlEQjIgLyogU3RhY2tJdGVyYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzFFQUVFMTc5ODdBQjYwMDI5OURCMiAvKiBTdGFj
a0l0ZXJhdG9yUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0Uz
MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCAqLzsgfTsKIAkJQTdEODlDRjMx
N0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0U0MTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdCbG9ja0luc2VydGlvblNldC5jcHAgKi87IH07CiAJCUE3RDg5Q0Y0MTdBMEI4Q0Mw
MDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEODlDRTUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Js
b2NrSW5zZXJ0aW9uU2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTIwODEsNiArMjA4Miw3IEBACiAJCUE3QzFFQUVCMTc5ODdBQjYwMDI5OURC
MiAvKiBKU1N0YWNrSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1N0YWNrSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MxRUFFQzE3
OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdGFja0l0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdDMUVBRUQxNzk4N0FCNjAwMjk5REIyIC8qIFN0YWNrSXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tJdGVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBN0MxRUFFRTE3OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tJdGVy
YXRvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tJdGVy
YXRvclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMjI1Q0MxMzk5
ODFGMTAwRkYxNjYyIC8qIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHkgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnNjcmlwdC5weXRob247IHBhdGggPSBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MyMjVDRDEzOTk4NDlDMDBGRjE2NjIgLyogS2V5d29y
ZExvb2t1cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXl3b3JkTG9va3Vw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDg5Q0UzMTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdCYXNpY0Jsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IERGR0Jhc2ljQmxvY2suY3BwOyBwYXRoID0gZGZnL0RGR0Jhc2ljQmxvY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYwNyw2ICsyNjA5LDcgQEAKIAkJCQkxNDlCMjRG
RjBEOEFGNkQxMDA5Q0I4QzcgLyogUmVnaXN0ZXIuaCAqLywKIAkJCQlBN0MxRUFFQzE3OTg3QUI2
MDAyOTlEQjIgLyogU3RhY2tJdGVyYXRvci5jcHAgKi8sCiAJCQkJQTdDMUVBRUQxNzk4N0FCNjAw
Mjk5REIyIC8qIFN0YWNrSXRlcmF0b3IuaCAqLywKKwkJCQlBN0MxRUFFRTE3OTg3QUI2MDAyOTlE
QjIgLyogU3RhY2tJdGVyYXRvclByaXZhdGUuaCAqLywKIAkJCQlGRTRBMzMxRDE1QkQyRTA3MDA2
RjU0RjMgLyogVk1JbnNwZWN0b3IuY3BwICovLAogCQkJCUZFNEEzMzFFMTVCRDJFMDcwMDZGNTRG
MyAvKiBWTUluc3BlY3Rvci5oICovLAogCQkJKTsKQEAgLTQyODQsNiArNDI4Nyw3IEBACiAJCQkJ
MEY1NTQxQjIxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkQ4MkU1NDE0MURBRUVFMDAxNzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3QzFFQUYyMTc5ODdBQjYwMDI5OURCMiAvKiBTdGFja0l0ZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0MxRUFGMzE3OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tJ
dGVyYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REYwNERBMTZCMzk5NkQwMDE2
QTUxMyAvKiBTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNENB
OTU4QjE2QUI1MERFMDA5MzhBMDYgLyogU3RhdGljUHJvcGVydHlBbmFseXplci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTczMEI2MTIxMjUwMDY4RjAwOUQyNUIxIC8qIFN0cmljdEV2YWxBY3RpdmF0
aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5jcHAKaW5kZXggYzQwZDk1ZGJhMjIyOTMxNDdhMTFhZjJlMTllZTAxYTMz
NDZmZmJhYS4uNzY5ZWM4YjYwY2JiNmU3NGE2YmZhMjFkYWQyMGNhOTYxN2UyOWE2YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKQEAgLTEx
MSw0ICsxMTEsOSBAQCBTdGFja0l0ZXJhdG9yIENhbGxGcmFtZTo6ZmluZChKU0Z1bmN0aW9uKiBj
YWxsZWVGdW5jdGlvbk9iaiwgU3RhY2tJdGVyYXRvcjo6RnJhbQogICAgIHJldHVybiBpdGVyOwog
fQogCi19IC8vIG5hbWVzcGFjZSBKU0MKK1N0YWNrSXRlcmF0b3I6OkZyYW1lKiBDYWxsRnJhbWU6
OmVuZCgpCit7CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OmVuZCgpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKaW5kZXggZWJlYmVl
OWNjMGExMDBiYTAyZmViYzBmZDRjNGRhOGI1NmFkZjhkYS4uYzExZDlkMTZlYTMyZjdiZWIzYzM5
OTE2OGM1YWMyY2E0MDc2ZDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkpTU3RhY2suaCIK
ICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNsdWRlICJSZWdpc3Rlci5o
IgotI2luY2x1ZGUgIlN0YWNrSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJTdGFja0l0ZXJhdG9yUHJp
dmF0ZS5oIgogCiBuYW1lc3BhY2UgSlNDICB7CiAKQEAgLTI4Myw3ICsyODMsNyBAQCBuYW1lc3Bh
Y2UgSlNDICB7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tJdGVyYXRvciBiZWdp
bihTdGFja0l0ZXJhdG9yOjpGcmFtZUZpbHRlciA9IDApOwogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdGFja0l0ZXJhdG9yIGZpbmQoSlNGdW5jdGlvbiogY2FsbGVlRnVuY3Rpb25PYmosIFN0
YWNrSXRlcmF0b3I6OkZyYW1lRmlsdGVyID0gMCk7Ci0gICAgICAgIFN0YWNrSXRlcmF0b3IgZW5k
KCkgeyByZXR1cm4gU3RhY2tJdGVyYXRvcjo6ZW5kKCk7IH0KKyAgICAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3RhY2tJdGVyYXRvcjo6RnJhbWUqIGVuZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgc3RhdGljIGNvbnN0IGludHB0cl90IEhvc3RDYWxsRnJhbWVGbGFnID0gMTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNwcAppbmRl
eCAwM2JkMTdiZTBmMzE0MGY2N2Y4M2IzNjBkOGJkOGRhNjk5NDUwZGNjLi45ZDg0OTBlYTc4Y2Vi
OGFkY2VlM2VjYzhmM2I4Yjg2MDBjMzFlZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAj
aW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCkBAIC0zOSw2ICszOCw3
IEBAIFN0YWNrSXRlcmF0b3I6OlN0YWNrSXRlcmF0b3IoQ2FsbEZyYW1lKiBzdGFydEZyYW1lLCBT
dGFja0l0ZXJhdG9yOjpGcmFtZUZpbHRlciBmCiAgICAgOiBtX3N0YXJ0RnJhbWUoc3RhcnRGcmFt
ZSkKICAgICAsIG1fZmlsdGVyKGZpbHRlcikKIHsKKyAgICBBU1NFUlQoc3RhcnRGcmFtZSk7CiAg
ICAgcmVzZXRJdGVyYXRvcigpOwogfQogCkBAIC00Niw4ICs0Niw4IEBAIHNpemVfdCBTdGFja0l0
ZXJhdG9yOjpudW1iZXJPZkZyYW1lcygpCiB7CiAgICAgaW50IHNhdmVkRnJhbWVJbmRleCA9IG1f
ZnJhbWVJbmRleDsKICAgICByZXNldEl0ZXJhdG9yKCk7Ci0gICAgd2hpbGUgKG1fZnJhbWUuY2Fs
bEZyYW1lKCkpCi0gICAgICAgIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7CisgICAgd2hpbGUg
KG1fZnJhbWUpCisgICAgICAgIGdvdG9OZXh0RnJhbWUoKTsKICAgICBzaXplX3QgbnVtYmVyT2ZG
cmFtZXMgPSBtX2ZyYW1lSW5kZXg7CiAKICAgICByZXNldEl0ZXJhdG9yKCk7CkBAIC01OCwxNjUg
KzU4LDM5IEBAIHNpemVfdCBTdGFja0l0ZXJhdG9yOjpudW1iZXJPZkZyYW1lcygpCiAKIHZvaWQg
U3RhY2tJdGVyYXRvcjo6Z290b0ZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCiB7Ci0gICAgd2hp
bGUgKG1fZnJhbWUuY2FsbEZyYW1lKCkgJiYgKG1fZnJhbWVJbmRleCAhPSBpbmRleCkpCi0gICAg
ICAgIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7CisgICAgd2hpbGUgKG1fZnJhbWUgJiYgKG1f
ZnJhbWVJbmRleCAhPSBpbmRleCkpCisgICAgICAgIGdvdG9OZXh0RnJhbWUoKTsKIH0KIAogdm9p
ZCBTdGFja0l0ZXJhdG9yOjpnb3RvTmV4dEZyYW1lKCkKIHsKLSNpZiBFTkFCTEUoREZHX0pJVCkK
LSAgICBpZiAobV9mcmFtZS5pc0lubGluZWRGcmFtZSgpKSB7Ci0gICAgICAgIElubGluZUNhbGxG
cmFtZSogaW5saW5lQ2FsbEZyYW1lID0gbV9mcmFtZS5pbmxpbmVDYWxsRnJhbWUoKTsKLSAgICAg
ICAgQ29kZU9yaWdpbiogY2FsbGVyQ29kZU9yaWdpbiA9ICZpbmxpbmVDYWxsRnJhbWUtPmNhbGxl
cjsKLSAgICAgICAgcmVhZElubGluZWRGcmFtZShtX2ZyYW1lLmNhbGxGcmFtZSgpLCBjYWxsZXJD
b2RlT3JpZ2luKTsKLQotICAgIH0gZWxzZQotI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQotICAg
ICAgICByZWFkRnJhbWUobV9mcmFtZS5jYWxsZXJGcmFtZSgpKTsKLX0KLQotdm9pZCBTdGFja0l0
ZXJhdG9yOjpnb3RvTmV4dEZyYW1lV2l0aEZpbHRlcigpCi17Ci0gICAgQVNTRVJUKG1fZnJhbWUu
Y2FsbEZyYW1lKCkpOwotICAgIHdoaWxlIChtX2ZyYW1lLmNhbGxGcmFtZSgpKSB7Ci0gICAgICAg
IGdvdG9OZXh0RnJhbWUoKTsKLSAgICAgICAgaWYgKCFtX2ZyYW1lLmNhbGxGcmFtZSgpIHx8ICFt
X2ZpbHRlciB8fCAhbV9maWx0ZXIoJm1fZnJhbWUpKQorICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJh
bWU7CisgICAgd2hpbGUgKGZyYW1lKSB7CisgICAgICAgIGZyYW1lID0gZnJhbWUtPmxvZ2ljYWxD
YWxsZXJGcmFtZSgpOworICAgICAgICBpZiAoIWZyYW1lIHx8ICFtX2ZpbHRlciB8fCAhbV9maWx0
ZXIoZnJhbWUpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIG1fZnJhbWUgPSBmcmFt
ZTsKICAgICBtX2ZyYW1lSW5kZXgrKzsKIH0KIAogdm9pZCBTdGFja0l0ZXJhdG9yOjpyZXNldEl0
ZXJhdG9yKCkKIHsKICAgICBtX2ZyYW1lSW5kZXggPSAwOwotICAgIHJlYWRGcmFtZShtX3N0YXJ0
RnJhbWUpOwotfQotCi1TdGFja0l0ZXJhdG9yIFN0YWNrSXRlcmF0b3I6OmVuZCgpCi17Ci0gICAg
cmV0dXJuIFN0YWNrSXRlcmF0b3IoMCwgMCk7CisgICAgbV9mcmFtZSA9IEZyYW1lOjpjcmVhdGUo
bV9zdGFydEZyYW1lKTsKKyAgICBtX2ZyYW1lID0gbV9mcmFtZS0+bG9naWNhbEZyYW1lKCk7CiB9
CiAKIHZvaWQgU3RhY2tJdGVyYXRvcjo6ZmluZChKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKIHsK
ICAgICBBU1NFUlQoZnVuY3Rpb25PYmopOwogICAgIEpTT2JqZWN0KiB0YXJnZXRDYWxsZWUgPSBq
c0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZnVuY3Rpb25PYmopOwotICAgIHdoaWxlIChtX2ZyYW1l
LmNhbGxGcmFtZSgpKSB7Ci0gICAgICAgIGlmIChtX2ZyYW1lLmNhbGxlZSgpID09IHRhcmdldENh
bGxlZSkKKyAgICB3aGlsZSAobV9mcmFtZSkgeworICAgICAgICBpZiAobV9mcmFtZS0+Y2FsbGVl
KCkgPT0gdGFyZ2V0Q2FsbGVlKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGdvdG9OZXh0
RnJhbWVXaXRoRmlsdGVyKCk7Ci0gICAgfQotfQotCi12b2lkIFN0YWNrSXRlcmF0b3I6OnJlYWRG
cmFtZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aGFz
SG9zdENhbGxGcmFtZUZsYWcoKSk7Ci0gICAgaWYgKCFjYWxsRnJhbWUpIHsKLSAgICAgICAgbV9m
cmFtZS5zZXRUb0VuZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0jaWYgIUVOQUJMRShE
RkdfSklUKQotICAgIHJlYWROb25JbmxpbmVkRnJhbWUoY2FsbEZyYW1lKTsKLQotI2Vsc2UgLy8g
IUVOQUJMRShERkdfSklUKQotICAgIC8vIElmIHRoZSBmcmFtZSBkb2Vzbid0IGhhdmUgYSBjb2Rl
IGJsb2NrLCB0aGVuIGl0J3Mgbm90IGEgREZHIGZyYW1lLgotICAgIC8vIEhlbmNlLCB3ZSdyZSBu
b3QgYXQgYW4gaW5saW5lZCBmcmFtZS4KLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgaWYgKCFjb2RlQmxvY2spIHsKLSAgICAgICAgcmVhZE5v
bklubGluZWRGcmFtZShjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
Ly8gSWYgdGhlIGNvZGUgYmxvY2sgZG9lcyBub3QgaGF2ZSBhbnkgY29kZSBvcmlnaW5zLCB0aGVu
IHRoZXJlJ3Mgbm8KLSAgICAvLyBpbmxpbmluZy4gSGVuY2UsIHdlJ3JlIG5vdCBhdCBhbiBpbmxp
bmVkIGZyYW1lLgotICAgIGlmICghY29kZUJsb2NrLT5oYXNDb2RlT3JpZ2lucygpKSB7Ci0gICAg
ICAgIHJlYWROb25JbmxpbmVkRnJhbWUoY2FsbEZyYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIHVuc2lnbmVkIGluZGV4ID0gY2FsbEZyYW1lLT5sb2NhdGlvbkFzQ29kZU9yaWdp
bkluZGV4KCk7Ci0gICAgQVNTRVJUKGNvZGVCbG9jay0+Y2FuR2V0Q29kZU9yaWdpbihpbmRleCkp
OwotICAgIGlmICghY29kZUJsb2NrLT5jYW5HZXRDb2RlT3JpZ2luKGluZGV4KSkgewotICAgICAg
ICAvLyBTZWUgYXNzZXJ0aW9uIGFib3ZlLiBJbiByZWxlYXNlIGJ1aWxkcywgd2UgdHJ5IHRvIHBy
b3RlY3Qgb3Vyc2VsdmVzCi0gICAgICAgIC8vIGZyb20gY3Jhc2hpbmcgZXZlbiB0aG91Z2ggc3Rh
Y2sgd2Fsa2luZyB3aWxsIGJlIGdvb2ZlZCB1cC4KLSAgICAgICAgbV9mcmFtZS5zZXRUb0VuZCgp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0g
Y29kZUJsb2NrLT5jb2RlT3JpZ2luKGluZGV4KTsKLSAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lKSB7Ci0gICAgICAgIHJlYWROb25JbmxpbmVkRnJhbWUoY2FsbEZyYW1lLCAmY29k
ZU9yaWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICByZWFkSW5saW5lZEZyYW1l
KGNhbGxGcmFtZSwgJmNvZGVPcmlnaW4pOwotI2VuZGlmIC8vICFFTkFCTEUoREZHX0pJVCkKLX0K
LQotdm9pZCBTdGFja0l0ZXJhdG9yOjpyZWFkTm9uSW5saW5lZEZyYW1lKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBDb2RlT3JpZ2luKiBjb2RlT3JpZ2luKQotewotICAgIG1fZnJhbWUubV9jYWxsRnJh
bWUgPSBjYWxsRnJhbWU7Ci0gICAgbV9mcmFtZS5tX2FyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
ID0gY2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpOwotICAgIG1fZnJhbWUu
bV9jYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxG
cmFtZUZsYWcoKTsKLSAgICBtX2ZyYW1lLm1fY2FsbGVlID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsK
LSAgICBtX2ZyYW1lLm1fc2NvcGUgPSBjYWxsRnJhbWUtPnNjb3BlKCk7Ci0gICAgbV9mcmFtZS5t
X2NvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgbV9mcmFtZS5tX2J5dGVj
b2RlT2Zmc2V0ID0gIW1fZnJhbWUuY29kZUJsb2NrKCkgPyAwCi0gICAgICAgIDogY29kZU9yaWdp
biA/IGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgKLSAgICAgICAgOiBjYWxsRnJhbWUtPmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpOwotI2lmIEVOQUJMRShERkdfSklUKQotICAgIG1fZnJhbWUu
bV9pbmxpbmVDYWxsRnJhbWUgPSAwOwotI2VuZGlmCi19Ci0KLSNpZiBFTkFCTEUoREZHX0pJVCkK
LXN0YXRpYyB1bnNpZ25lZCBpbmxpbmVkRnJhbWVPZmZzZXQoQ29kZU9yaWdpbiogY29kZU9yaWdp
bikKLXsKLSAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4t
PmlubGluZUNhbGxGcmFtZTsKLSAgICB1bnNpZ25lZCBmcmFtZU9mZnNldCA9IGlubGluZUNhbGxG
cmFtZSA/IGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgOiAwOwotICAgIHJldHVybiBmcmFt
ZU9mZnNldDsKLX0KLQotdm9pZCBTdGFja0l0ZXJhdG9yOjpyZWFkSW5saW5lZEZyYW1lKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBDb2RlT3JpZ2luKiBjb2RlT3JpZ2luKQotewotICAgIEFTU0VSVChj
b2RlT3JpZ2luKTsKLSAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aGFzSG9zdENhbGxGcmFtZUZsYWco
KSk7Ci0KLSAgICB1bnNpZ25lZCBmcmFtZU9mZnNldCA9IGlubGluZWRGcmFtZU9mZnNldChjb2Rl
T3JpZ2luKTsKLSAgICBib29sIGlzSW5saW5lZCA9ICEhZnJhbWVPZmZzZXQ7Ci0gICAgaWYgKGlz
SW5saW5lZCkgewotICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNv
ZGVPcmlnaW4tPmlubGluZUNhbGxGcmFtZTsKLQotICAgICAgICBtX2ZyYW1lLm1fY2FsbEZyYW1l
ID0gY2FsbEZyYW1lOwotICAgICAgICBtX2ZyYW1lLm1faW5saW5lQ2FsbEZyYW1lID0gaW5saW5l
Q2FsbEZyYW1lOwotICAgICAgICBtX2ZyYW1lLm1fYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMg
PSBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7Ci0gICAgICAgIG1fZnJhbWUubV9j
b2RlQmxvY2sgPSBpbmxpbmVDYWxsRnJhbWUtPmJhc2VsaW5lQ29kZUJsb2NrKCk7Ci0gICAgICAg
IG1fZnJhbWUubV9ieXRlY29kZU9mZnNldCA9IGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXg7Ci0K
LSAgICAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0gaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUuZ2V0
KCk7Ci0gICAgICAgIGlmIChjYWxsZWUpIHsKLSAgICAgICAgICAgIG1fZnJhbWUubV9zY29wZSA9
IGNhbGxlZS0+c2NvcGUoKTsKLSAgICAgICAgICAgIG1fZnJhbWUubV9jYWxsZWUgPSBjYWxsZWU7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBDYWxsRnJhbWUqIGlubGluZWRGcmFtZSA9
IGNhbGxGcmFtZSArIGZyYW1lT2Zmc2V0OwotICAgICAgICAgICAgbV9mcmFtZS5tX3Njb3BlID0g
aW5saW5lZEZyYW1lLT5zY29wZSgpOwotICAgICAgICAgICAgbV9mcmFtZS5tX2NhbGxlZSA9IGlu
bGluZWRGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUKG1fZnJhbWUu
c2NvcGUoKSk7Ci0gICAgICAgIEFTU0VSVChtX2ZyYW1lLmNhbGxlZSgpKTsKLQotICAgICAgICAv
LyBUaGUgY2FsbGVyRnJhbWUganVzdCBuZWVkcyB0byBiZSBub24tbnVsbCB0byBpbmRpY2F0ZSB0
aGF0IHdlCi0gICAgICAgIC8vIGhhdmVuJ3QgcmVhY2hlZCB0aGUgbGFzdCBmcmFtZSB5ZXQuIFNl
dHRpbmcgaXQgdG8gdGhlIHJvb3QKLSAgICAgICAgLy8gZnJhbWUgKGkuZS4gdGhlIGNhbGxGcmFt
ZSB0aGF0IHRoaXMgaW5saW5lZCBmcmFtZSBpcyBjYWxsZWQgZnJvbSkKLSAgICAgICAgLy8gd291
bGQgd29yayBqdXN0IGZpbmUuCi0gICAgICAgIG1fZnJhbWUubV9jYWxsZXJGcmFtZSA9IGNhbGxG
cmFtZTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBnb3RvTmV4dEZyYW1lKCk7CiAgICAgfQot
Ci0gICAgcmVhZE5vbklubGluZWRGcmFtZShjYWxsRnJhbWUsIGNvZGVPcmlnaW4pOwogfQotI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6Q29kZVR5cGUg
U3RhY2tJdGVyYXRvcjo6RnJhbWU6OmNvZGVUeXBlKCkgY29uc3QKIHsKQEAgLTMwMSwyMyArMTc1
LDIyIEBAIFN0cmluZyBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6dG9TdHJpbmcoKQogICAgIHJldHVy
biB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOwogfQogCi1Bcmd1bWVudHMqIFN0YWNrSXRl
cmF0b3I6OkZyYW1lOjphcmd1bWVudHMoKQordW5zaWduZWQgU3RhY2tJdGVyYXRvcjo6RnJhbWU6
OmJ5dGVjb2RlT2Zmc2V0KCkKIHsKLSAgICBBU1NFUlQobV9jYWxsRnJhbWUpOwotICAgIENhbGxG
cmFtZSogcGh5c2ljYWxGcmFtZSA9IG1fY2FsbEZyYW1lOwotICAgIFZNJiB2bSA9IHBoeXNpY2Fs
RnJhbWUtPnZtKCk7Ci0gICAgQXJndW1lbnRzKiBhcmd1bWVudHM7CisgICAgaWYgKCFpc0pTRnJh
bWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKGlz
SW5saW5lZEZyYW1lKCkpIHsKLSAgICAgICAgQVNTRVJUKG1faW5saW5lQ2FsbEZyYW1lKTsKLSAg
ICAgICAgYXJndW1lbnRzID0gQXJndW1lbnRzOjpjcmVhdGUodm0sIHBoeXNpY2FsRnJhbWUsIG1f
aW5saW5lQ2FsbEZyYW1lKTsKLSAgICAgICAgYXJndW1lbnRzLT50ZWFyT2ZmKHBoeXNpY2FsRnJh
bWUsIG1faW5saW5lQ2FsbEZyYW1lKTsKLSAgICB9IGVsc2UgCisgICAgaWYgKGhhc0xvY2F0aW9u
QXNDb2RlT3JpZ2luSW5kZXgoKSkKKyAgICAgICAgcmV0dXJuIGJ5dGVjb2RlT2Zmc2V0RnJvbUNv
ZGVPcmlnaW5JbmRleCgpOwogI2VuZGlmCi0gICAgewotICAgICAgICBhcmd1bWVudHMgPSBBcmd1
bWVudHM6OmNyZWF0ZSh2bSwgcGh5c2ljYWxGcmFtZSk7Ci0gICAgICAgIGFyZ3VtZW50cy0+dGVh
ck9mZihwaHlzaWNhbEZyYW1lKTsKLSAgICB9CisgICAgcmV0dXJuIGxvY2F0aW9uQXNCeXRlY29k
ZU9mZnNldCgpOworfQorCitBcmd1bWVudHMqIFN0YWNrSXRlcmF0b3I6OkZyYW1lOjphcmd1bWVu
dHMoKQoreworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gdGhpcy0+Y2FsbEZyYW1lKCk7Cisg
ICAgQXJndW1lbnRzKiBhcmd1bWVudHMgPSBBcmd1bWVudHM6OmNyZWF0ZSh2bSgpLCBjYWxsRnJh
bWUpOworICAgIGFyZ3VtZW50cy0+dGVhck9mZihjYWxsRnJhbWUpOwogICAgIHJldHVybiBhcmd1
bWVudHM7CiB9CiAKQEAgLTM0OCwxMiArMjIxLDEwMSBAQCB2b2lkIFN0YWNrSXRlcmF0b3I6OkZy
YW1lOjpyZXRyaWV2ZUV4cHJlc3Npb25JbmZvKGludCYgZGl2b3QsIGludCYgc3RhcnRPZmZzZXQs
CiAgICAgZGl2b3QgKz0gY29kZUJsb2NrLT5zb3VyY2VPZmZzZXQoKTsKIH0KIAotdm9pZCBTdGFj
a0l0ZXJhdG9yOjpGcmFtZTo6c2V0VG9FbmQoKQorCitTdGFja0l0ZXJhdG9yOjpGcmFtZSogU3Rh
Y2tJdGVyYXRvcjo6RnJhbWU6OmxvZ2ljYWxGcmFtZSgpCiB7Ci0gICAgbV9jYWxsRnJhbWUgPSAw
OwotI2lmIEVOQUJMRShERkdfSklUKQotICAgIG1faW5saW5lQ2FsbEZyYW1lID0gMDsKLSNlbmRp
ZgorI2lmICFFTkFCTEUoREZHX0pJVCkKKyAgICByZXR1cm4gdGhpczsKKworI2Vsc2UgLy8gIUVO
QUJMRShERkdfSklUKQorICAgIGlmIChpc0lubGluZWRGcmFtZSgpKQorICAgICAgICByZXR1cm4g
dGhpczsKKworICAgIC8vIElmIEkgZG9uJ3QgaGF2ZSBhIGNvZGUgYmxvY2ssIHRoZW4gSSdtIG5v
dCBERkcgY29kZSwgc28gSSdtIHRoZSB0cnVlIGNhbGwgZnJhbWUuCisgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSB0aGlzLT5jb2RlQmxvY2soKTsKKyAgICBpZiAoIWNvZGVCbG9jaykKKyAgICAg
ICAgcmV0dXJuIHRoaXM7CisKKyAgICAvLyBJZiB0aGUgY29kZSBibG9jayBkb2VzIG5vdCBoYXZl
IGFueSBjb2RlIG9yaWdpbnMsIHRoZW4gdGhlcmUgd2FzIG5vIGlubGluaW5nLCBzbworICAgIC8v
IEknbSBkb25lLgorICAgIGlmICghY29kZUJsb2NrLT5oYXNDb2RlT3JpZ2lucygpKQorICAgICAg
ICByZXR1cm4gdGhpczsKKyAgICAKKyAgICBDb2RlQmxvY2sqIG91dGVyTW9zdENvZGVCbG9jayA9
IGNvZGVCbG9jazsKKyAgICB1bnNpZ25lZCBpbmRleCA9IGxvY2F0aW9uQXNDb2RlT3JpZ2luSW5k
ZXgoKTsKKyAgICBBU1NFUlQob3V0ZXJNb3N0Q29kZUJsb2NrLT5jYW5HZXRDb2RlT3JpZ2luKGlu
ZGV4KSk7CisgICAgaWYgKCFvdXRlck1vc3RDb2RlQmxvY2stPmNhbkdldENvZGVPcmlnaW4oaW5k
ZXgpKSB7CisgICAgICAgIC8vIFNlZSBhYm92ZS4gSW4gcmVsZWFzZSBidWlsZHMsIHdlIHRyeSB0
byBwcm90ZWN0IG91cnNlbHZlcyBmcm9tIGNyYXNoaW5nIGV2ZW4KKyAgICAgICAgLy8gdGhvdWdo
IHN0YWNrIHdhbGtpbmcgd2lsbCBiZSBnb29mZWQgdXAuCisgICAgICAgIHJldHVybiAwOworICAg
IH0KKworICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG91dGVyTW9zdENvZGVCbG9jay0+Y29k
ZU9yaWdpbihpbmRleCk7CisgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAg
ICAgICAgcmV0dXJuIHRoaXM7IC8vIE5vdCBjdXJyZW50bHkgaW4gaW5saW5lZCBjb2RlLgorCisg
ICAgLy8gV2UndmUgZ290IGlubGluZWQgZnJhbWVzLiBTbywgcmVpZnkgdGhlbSBzbyB0aGF0IHRo
ZSBpdGVyYXRvciBjYW4gd2FsayB0aHJvdWdoIHRoZW0uCisgICAgQ2FsbEZyYW1lKiBjdXJyRnJh
bWUgPSB0aGlzLT5jYWxsRnJhbWUoKTsKKyAgICBDYWxsRnJhbWUqIGlubmVyTW9zdExvZ2ljYWxG
cmFtZSA9IGN1cnJGcmFtZSArIGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNl
dDsKKworICAgIENhbGxGcmFtZSogbG9naWNhbEZyYW1lID0gaW5uZXJNb3N0TG9naWNhbEZyYW1l
OworICAgIHdoaWxlIChsb2dpY2FsRnJhbWUgIT0gY3VyckZyYW1lKSB7CisgICAgICAgIElubGlu
ZUNhbGxGcmFtZSogaW5saW5lZEZyYW1lSW5mbyA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1l
OworICAgICAgICAKKyAgICAgICAgLy8gRmlsbCBpbiB0aGUgbG9naWNhbCAoaS5lLiBpbmxpbmVk
KSBmcmFtZQorICAgICAgICBsb2dpY2FsRnJhbWUtPnNldENvZGVCbG9jayhpbmxpbmVkRnJhbWVJ
bmZvLT5iYXNlbGluZUNvZGVCbG9jaygpKTsKKyAgICAgICAgbG9naWNhbEZyYW1lLT5zZXRJbmxp
bmVDYWxsRnJhbWUoaW5saW5lZEZyYW1lSW5mbyk7CisgICAgICAgIGxvZ2ljYWxGcmFtZS0+c2V0
QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW5saW5lZEZyYW1lSW5mby0+YXJndW1lbnRzLnNp
emUoKSk7CisgICAgICAgIGxvZ2ljYWxGcmFtZS0+c2V0TG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIGxvZ2ljYWxGcmFtZS0+c2V0SXNJ
bmxpbmVkRnJhbWUoKTsKKworICAgICAgICBKU0Z1bmN0aW9uKiBjYWxsZWUgPSBpbmxpbmVkRnJh
bWVJbmZvLT5jYWxsZWUuZ2V0KCk7CisgICAgICAgIGlmIChjYWxsZWUpIHsKKyAgICAgICAgICAg
IGxvZ2ljYWxGcmFtZS0+c2V0U2NvcGUoY2FsbGVlLT5zY29wZSgpKTsKKyAgICAgICAgICAgIGxv
Z2ljYWxGcmFtZS0+c2V0Q2FsbGVlKGNhbGxlZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIENvZGVPcmlnaW4qIGNhbGxlckNvZGVPcmlnaW4gPSAmaW5saW5lZEZyYW1lSW5mby0+Y2Fs
bGVyOworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGNhbGxlcklubGluZWRGcmFtZUluZm8gPSBj
YWxsZXJDb2RlT3JpZ2luLT5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgIHVuc2lnbmVkIGNhbGxl
ckZyYW1lT2Zmc2V0ID0gY2FsbGVySW5saW5lZEZyYW1lSW5mbyA/IGNhbGxlcklubGluZWRGcmFt
ZUluZm8tPnN0YWNrT2Zmc2V0IDogMDsKKyAgICAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9
IGN1cnJGcmFtZSArIGNhbGxlckZyYW1lT2Zmc2V0OworICAgICAgICBsb2dpY2FsRnJhbWUtPnNl
dENhbGxlckZyYW1lKGNhbGxlckZyYW1lKTsKKworICAgICAgICBjb2RlT3JpZ2luID0gKmNhbGxl
ckNvZGVPcmlnaW47CisgICAgICAgIGxvZ2ljYWxGcmFtZSA9IGNhbGxlckZyYW1lOworICAgIH0K
KyAgICAKKyAgICBBU1NFUlQoIWlubmVyTW9zdExvZ2ljYWxGcmFtZS0+aGFzSG9zdENhbGxGcmFt
ZUZsYWcoKSk7CisgICAgcmV0dXJuIEZyYW1lOjpjcmVhdGUoaW5uZXJNb3N0TG9naWNhbEZyYW1l
KTsKKyNlbmRpZiAvLyAhRU5BQkxFKERGR19KSVQpCit9CisKK1N0YWNrSXRlcmF0b3I6OkZyYW1l
KiBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6bG9naWNhbENhbGxlckZyYW1lKCkKK3sKKyAgICBGcmFt
ZSogY2FsbGVyRnJhbWUgPSBjcmVhdGUodGhpcy0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENh
bGxGcmFtZUZsYWcoKSk7CisjaWYgIUVOQUJMRShERkdfSklUKQorICAgIHJldHVybiBjYWxsZXJG
cmFtZTsKKworI2Vsc2UgLy8gIUVOQUJMRShERkdfSklUKQorICAgIGlmICghaXNKU0ZyYW1lKCkg
fHwgIWNhbGxlckZyYW1lKQorICAgICAgICByZXR1cm4gY2FsbGVyRnJhbWU7CisKKyAgICAvLyBJ
ZiBJIGFtIGtub3duIHRvIGJlIGFuIGlubGluZWQgZnJhbWUsIHRoZW4gSSd2ZSBiZWVuIHJlaWZp
ZWQgYWxyZWFkeSBhbmQKKyAgICAvLyBoYXZlIG15IGNhbGxlci4KKyAgICBpZiAoaXNJbmxpbmVk
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGNhbGxlckZyYW1lOworICAgIAorICAgIC8vIEkgYW0g
bm90IGFuIGlubGluZWQgZnJhbWUuIFNvIHRoZSBxdWVzdGlvbiBpczogaXMgbXkgY2FsbGVyIGEg
Q2FsbEZyYW1lCisgICAgLy8gdGhhdCBoYXMgaW5saW5lcyBvciBhIENhbGxGcmFtZSB0aGF0IGRv
ZXNuJ3Q/CisKKyAgICAvLyBJZiBteSBjYWxsZXIgaXMgbm90IGEgSlMgZnJhbWUsIGl0IGNhbm5v
dCBoYXZlIGlubGluZXMsIGFuZCB3ZSdyZSBkb25lLgorICAgIGlmICghY2FsbGVyRnJhbWUtPmlz
SlNGcmFtZSgpKQorICAgICAgICByZXR1cm4gY2FsbGVyRnJhbWU7CisKKyAgICBBU1NFUlQoIWNh
bGxlckZyYW1lLT5pc0lubGluZWRGcmFtZSgpKTsKKyAgICByZXR1cm4gY2FsbGVyRnJhbWUtPmxv
Z2ljYWxGcmFtZSgpOworCisjZW5kaWYgLy8gIUVOQUJMRShERkdfSklUKQogfQogCiAjaWZuZGVm
IE5ERUJVRwpAQCAtNDA3LDM0ICszNjksMzEgQEAgdm9pZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6
cHJpbnQoaW50IGluZGVudExldmVsKQogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+
Y29kZUJsb2NrKCk7CiAgICAgcHJpbnRpZihpLCAiZnJhbWUgJXAge1xuIiwgdGhpcyk7CiAKLSAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IG1fY2FsbEZyYW1lOwogICAgIENhbGxGcmFtZSogY2Fs
bGVyRnJhbWUgPSB0aGlzLT5jYWxsZXJGcmFtZSgpOwotICAgIHZvaWQqIHJldHVyblBDID0gY2Fs
bEZyYW1lLT5oYXNSZXR1cm5QQygpID8gY2FsbEZyYW1lLT5yZXR1cm5QQygpLnZhbHVlKCkgOiAw
OworICAgIHZvaWQqIHJldHVyblBDID0gaGFzUmV0dXJuUEMoKSA/IHRoaXMtPnJldHVyblBDKCku
dmFsdWUoKSA6IDA7CiAKICAgICBwcmludGlmKGksICIgICBuYW1lICclcydcbiIsIGZ1bmN0aW9u
TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHByaW50aWYoaSwgIiAgIHNvdXJjZVVSTCAnJXMn
XG4iLCBzb3VyY2VVUkwoKS51dGY4KCkuZGF0YSgpKTsKICAgICBwcmludGlmKGksICIgICBob3N0
RmxhZyAlZFxuIiwgY2FsbGVyRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkpOwotCi0jaWYg
RU5BQkxFKERGR19KSVQpCiAgICAgcHJpbnRpZihpLCAiICAgaXNJbmxpbmVkRnJhbWUgJWRcbiIs
IGlzSW5saW5lZEZyYW1lKCkpOworCiAgICAgaWYgKGlzSW5saW5lZEZyYW1lKCkpCi0gICAgICAg
IHByaW50aWYoaSwgIiAgIElubGluZUNhbGxGcmFtZSAlcFxuIiwgbV9pbmxpbmVDYWxsRnJhbWUp
OwotI2VuZGlmCisgICAgICAgIHByaW50aWYoaSwgIiAgIElubGluZUNhbGxGcmFtZSAlcFxuIiwg
dGhpcy0+aW5saW5lQ2FsbEZyYW1lKCkpOwogCiAgICAgcHJpbnRpZihpLCAiICAgY2FsbGVlICVw
XG4iLCBjYWxsZWUoKSk7CiAgICAgcHJpbnRpZihpLCAiICAgcmV0dXJuUEMgJXBcbiIsIHJldHVy
blBDKTsKICAgICBwcmludGlmKGksICIgICBjYWxsZXJGcmFtZSAlcFxuIiwgY2FsbGVyRnJhbWUt
PnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFnKCkpOwotICAgIHVuc2lnbmVkIGxvY2F0aW9uUmF3Qml0
cyA9IGNhbGxGcmFtZS0+bG9jYXRpb25Bc1Jhd0JpdHMoKTsKLSAgICBwcmludGlmKGksICIgICBy
YXdMb2NhdGlvbkJpdHMgJXUgMHgleFxuIiwgbG9jYXRpb25SYXdCaXRzLCBsb2NhdGlvblJhd0Jp
dHMpOworICAgIHByaW50aWYoaSwgIiAgIGxvZ2ljYWxDYWxsZXJGcmFtZSAlcFxuIiwgbG9naWNh
bENhbGxlckZyYW1lKCkpOworICAgIHByaW50aWYoaSwgIiAgIHJhd0xvY2F0aW9uQml0cyAldSAw
eCV4XG4iLCBsb2NhdGlvbkFzUmF3Qml0cygpLCBsb2NhdGlvbkFzUmF3Qml0cygpKTsKICAgICBw
cmludGlmKGksICIgICBjb2RlQmxvY2sgJXBcbiIsIGNvZGVCbG9jayk7CiAgICAgaWYgKGNvZGVC
bG9jaykgewogICAgICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUgPSBjb2RlQmxvY2stPmpp
dFR5cGUoKTsKLSAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFzTG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1l
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgaWYgKGhhc0xvY2F0aW9uQXNC
eXRlY29kZU9mZnNldCgpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9
IGxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOwogICAgICAgICAgICAgcHJpbnRpZihpLCAiICAg
ICAgYnl0ZWNvZGVPZmZzZXQgJXUgJXAgLyAlenVcbiIsIGJ5dGVjb2RlT2Zmc2V0LCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihieXRlY29kZU9mZnNldCksIGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuc2l6ZSgpKTsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHVuc2lnbmVkIGNvZGVPcmlnaW5JbmRleCA9IGNhbGxGcmFtZS0+bG9jYXRpb25Bc0Nv
ZGVPcmlnaW5JbmRleCgpOworICAgICAgICAgICAgdW5zaWduZWQgY29kZU9yaWdpbkluZGV4ID0g
bG9jYXRpb25Bc0NvZGVPcmlnaW5JbmRleCgpOwogICAgICAgICAgICAgcHJpbnRpZihpLCAiICAg
ICAgY29kZU9yaWdpbklkZXggJXUgJXAgLyAlenVcbiIsIGNvZGVPcmlnaW5JbmRleCwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oY29kZU9yaWdpbkluZGV4KSwgY29kZUJsb2NrLT5jb2RlT3JpZ2lu
cygpLnNpemUoKSk7CiAjZW5kaWYKICAgICAgICAgfQpAQCAtNDYwLDI0ICs0MTksMTQgQEAgdm9p
ZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQoaW50IGluZGVudExldmVsKQogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNpZm5kZWYgTkRFQlVHCi0vLyBGb3IgZGVidWdnaW5nIHVzZQorLy8gRm9y
IHVzZSBpbiB0aGUgZGVidWdnZXIKIHZvaWQgZGVidWdQcmludENhbGxGcmFtZShKU0M6OkNhbGxG
cmFtZSopOwotdm9pZCBkZWJ1Z1ByaW50U3RhY2soSlNDOjpDYWxsRnJhbWUqIHRvcENhbGxGcmFt
ZSk7CiAKIHZvaWQgZGVidWdQcmludENhbGxGcmFtZShKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
KQogewogICAgIGlmICghY2FsbEZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgSlNDOjpTdGFj
a0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7Ci0gICAgaXRlci0+cHJpbnQoMik7
Ci19Ci0KLXZvaWQgZGVidWdQcmludFN0YWNrKEpTQzo6Q2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUp
Ci17Ci0gICAgaWYgKCF0b3BDYWxsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBKU0M6OlN0
YWNrSXRlcmF0b3IgaXRlciA9IHRvcENhbGxGcmFtZS0+YmVnaW4oKTsKLSAgICBmb3IgKDsgaXRl
ciAhPSB0b3BDYWxsRnJhbWUtPmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPnByaW50KDIp
OworICAgIEpTQzo6U3RhY2tJdGVyYXRvcjo6RnJhbWUqIGZyYW1lID0gSlNDOjpTdGFja0l0ZXJh
dG9yOjpGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZSk7CisgICAgZnJhbWUtPnByaW50KDIpOwogfQog
I2VuZGlmIC8vICFOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja0l0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvU3RhY2tJdGVyYXRvci5oCmluZGV4IDAzMTMwODJmMjZiMTQ4ZWMzOTVjNmE0YzE1MzZiNzI4
M2ZhNDliYWUuLjAwMjQwNjgwYjE2MDA5NGVmNjczNmQwYWUyYzg1ZWZjNzA2ZTFlYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuaApA
QCAtMjYsMTMwICsyNiw1MiBAQAogI2lmbmRlZiBTdGFja0l0ZXJhdG9yX2gKICNkZWZpbmUgU3Rh
Y2tJdGVyYXRvcl9oCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIlN0YWNr
SXRlcmF0b3JQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdHJ1Y3QgQ29kZU9yaWdp
bjsKLXN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7Ci0KIGNsYXNzIEFyZ3VtZW50czsKLWNsYXNzIENv
ZGVCbG9jazsKLWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIEpTRnVuY3Rpb247Ci1jbGFzcyBKU09i
amVjdDsKLWNsYXNzIEpTU2NvcGU7Ci0KLXR5cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIAot
Y2xhc3MgU3RhY2tJdGVyYXRvciB7CitjbGFzcyBTdGFja0l0ZXJhdG9yOjpGcmFtZSA6IHB1Ymxp
YyBDYWxsRnJhbWUgewogcHVibGljOgotICAgIGNsYXNzIEZyYW1lIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIGVudW0gQ29kZVR5cGUgewotICAgICAgICAgICAgR2xvYmFsLAotICAgICAgICAgICAg
RXZhbCwKLSAgICAgICAgICAgIEZ1bmN0aW9uLAotICAgICAgICAgICAgTmF0aXZlCi0gICAgICAg
IH07Ci0KLSAgICAgICAgc2l6ZV90IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgY29uc3Qg
eyByZXR1cm4gbV9hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsgfQotICAgICAgICBDYWxsRnJh
bWUqIGNhbGxlckZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZXJGcmFtZTsgfQotICAgICAg
ICBKU09iamVjdCogY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZWU7IH0KLSAgICAgICAg
SlNTY29wZSogc2NvcGUoKSBjb25zdCB7IHJldHVybiBtX3Njb3BlOyB9Ci0gICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlQmxvY2s7IH0KLSAgICAgICAg
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0
OyB9Ci0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5l
Q2FsbEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDYWxsRnJhbWU7IH0KLSNlbmRpZgot
Ci0gICAgICAgIGJvb2wgaXNKU0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gISFjb2RlQmxvY2soKTsg
fQotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBib29sIGlzSW5saW5lZEZyYW1lKCkgY29u
c3QgeyByZXR1cm4gISFtX2lubGluZUNhbGxGcmFtZTsgfQotI2VuZGlmCisgICAgZW51bSBDb2Rl
VHlwZSB7CisgICAgICAgIEdsb2JhbCA9IFN0YWNrRnJhbWVHbG9iYWxDb2RlLAorICAgICAgICBF
dmFsID0gU3RhY2tGcmFtZUV2YWxDb2RlLAorICAgICAgICBGdW5jdGlvbiA9IFN0YWNrRnJhbWVG
dW5jdGlvbkNvZGUsCisgICAgICAgIE5hdGl2ZSA9IFN0YWNrRnJhbWVOYXRpdmVDb2RlCisgICAg
fTsKIAotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZnVuY3Rpb25OYW1lKCk7Ci0g
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBzb3VyY2VVUkwoKTsKLSAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nIHRvU3RyaW5nKCk7CisgICAgc3RhdGljIEZyYW1lKiBjcmVh
dGUoQ2FsbEZyYW1lKiBmKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEZyYW1lKj4oZik7IH0K
IAotICAgICAgICBDb2RlVHlwZSBjb2RlVHlwZSgpIGNvbnN0OwotICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSB2b2lkIGNvbXB1dGVMaW5lQW5kQ29sdW1uKHVuc2lnbmVkJiBsaW5lLCB1bnNpZ25l
ZCYgY29sdW1uKTsKKyAgICBib29sIGlzSlNGcmFtZSgpIGNvbnN0IHsgcmV0dXJuICEhY29kZUJs
b2NrKCk7IH0KIAotICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cygpOwotICAgICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbEZyYW1lOyB9Ci0gICAgCi0j
aWZuZGVmIE5ERUJVRwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHByaW50KGludCBp
bmRlbnRMZXZlbCk7Ci0jZW5kaWYKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgZnVuY3Rp
b25OYW1lKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNvdXJjZVVSTCgpOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyB0b1N0cmluZygpOwogCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgRnJhbWUoKSB7IH0KLSAgICAgICAgfkZyYW1lKCkgeyB9CisgICAgQ29kZVR5cGUgY29k
ZVR5cGUoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCgpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgY29tcHV0ZUxpbmVBbmRDb2x1bW4odW5zaWduZWQmIGxpbmUsIHVu
c2lnbmVkJiBjb2x1bW4pOwogCi0gICAgICAgIHZvaWQgcmV0cmlldmVFeHByZXNzaW9uSW5mbyhp
bnQmIGRpdm90LCBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVuZE9mZnNldCwgdW5zaWduZWQmIGxp
bmUsIHVuc2lnbmVkJiBjb2x1bW4pOwotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICB2b2lk
IHNldFRvRW5kKCk7Ci0jZW5kaWYKKyAgICBBcmd1bWVudHMqIGFyZ3VtZW50cygpOworICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDYWxsRnJhbWUq
Pih0aGlzKTsgfQorICAgIAorICAgIEZyYW1lKiBsb2dpY2FsRnJhbWUoKTsKKyAgICBGcmFtZSog
bG9naWNhbENhbGxlckZyYW1lKCk7CiAKLSAgICAgICAgc2l6ZV90IG1fYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXM7Ci0gICAgICAgIENhbGxGcmFtZSogbV9jYWxsZXJGcmFtZTsKLSAgICAgICAg
SlNPYmplY3QqIG1fY2FsbGVlOwotICAgICAgICBKU1Njb3BlKiBtX3Njb3BlOwotICAgICAgICBD
b2RlQmxvY2sqIG1fY29kZUJsb2NrOwotICAgICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0
OwotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIG1faW5saW5l
Q2FsbEZyYW1lOworI2lmbmRlZiBOREVCVUcKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHBy
aW50KGludCBpbmRlbnRMZXZlbCk7CiAjZW5kaWYKIAotICAgICAgICBDYWxsRnJhbWUqIG1fY2Fs
bEZyYW1lOwotCi0gICAgICAgIGZyaWVuZCBjbGFzcyBTdGFja0l0ZXJhdG9yOwotICAgIH07Ci0K
LSAgICB0eXBlZGVmIGJvb2wgKCpGcmFtZUZpbHRlcikoRnJhbWUqKTsKLQotICAgIEpTX0VYUE9S
VF9QUklWQVRFIHNpemVfdCBudW1iZXJPZkZyYW1lcygpOwotCi0gICAgRnJhbWUmIG9wZXJhdG9y
KigpIHsgcmV0dXJuIG1fZnJhbWU7IH0KLSAgICBBTFdBWVNfSU5MSU5FIEZyYW1lKiBvcGVyYXRv
ci0+KCkgeyByZXR1cm4gJm1fZnJhbWU7IH0KLQotICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU3RhY2tJdGVyYXRvciYpOwotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdGFja0l0
ZXJhdG9yJiBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KLSAgICB2b2lkIG9w
ZXJhdG9yKysoKSB7IGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7IH0KLSAgICB2b2lkIGZpbmQo
SlNGdW5jdGlvbiopOwotCiBwcml2YXRlOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrSXRl
cmF0b3IoQ2FsbEZyYW1lKiBzdGFydEZyYW1lLCBGcmFtZUZpbHRlciA9IDApOwotCi0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0YWNrSXRlcmF0b3IgZW5kKCk7Ci0gICAgdm9pZCBnb3Rv
RnJhbWVBdEluZGV4KHNpemVfdCBmcmFtZUluZGV4KTsKLSAgICB2b2lkIGdvdG9OZXh0RnJhbWUo
KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7
Ci0gICAgdm9pZCByZXNldEl0ZXJhdG9yKCk7Ci0KLSAgICB2b2lkIHJlYWRGcmFtZShDYWxsRnJh
bWUqKTsKLSAgICB2b2lkIHJlYWROb25JbmxpbmVkRnJhbWUoQ2FsbEZyYW1lKiwgQ29kZU9yaWdp
biogPSAwKTsKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICB2b2lkIHJlYWRJbmxpbmVkRnJhbWUo
Q2FsbEZyYW1lKiwgQ29kZU9yaWdpbiopOwotI2VuZGlmCi0KLSAgICBDYWxsRnJhbWUqIG1fc3Rh
cnRGcmFtZTsKLSAgICBzaXplX3QgbV9mcmFtZUluZGV4OwotICAgIEZyYW1lRmlsdGVyIG1fZmls
dGVyOwotICAgIEZyYW1lIG1fZnJhbWU7CisgICAgRnJhbWUoKTsKKyAgICB+RnJhbWUoKTsKIAot
ICAgIGZyaWVuZCBjbGFzcyBFeGVjU3RhdGU7CisgICAgdm9pZCByZXRyaWV2ZUV4cHJlc3Npb25J
bmZvKGludCYgZGl2b3QsIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25l
ZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiB9OwogCi1pbmxpbmUgYm9vbCBTdGFja0l0ZXJh
dG9yOjpvcGVyYXRvcj09KGNvbnN0IFN0YWNrSXRlcmF0b3ImIG90aGVyKQotewotICAgIHJldHVy
biAobV9mcmFtZS5jYWxsRnJhbWUoKSA9PSBvdGhlci5tX2ZyYW1lLmNhbGxGcmFtZSgpKQotI2lm
IEVOQUJMRShERkdfSklUKQotICAgICAgICAmJiAobV9mcmFtZS5pbmxpbmVDYWxsRnJhbWUoKSA9
PSBvdGhlci5tX2ZyYW1lLmlubGluZUNhbGxGcmFtZSgpKQotI2VuZGlmCi0gICAgICAgIDsgCi19
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RhY2tJdGVyYXRvcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvclBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9y
UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMTY1NWE2ZjlkMzYzNTljMzliZGJhYmNiMmE0NGZhN2Vk
ZDBkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvU3RhY2tJdGVyYXRvclByaXZhdGUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU3RhY2tJdGVyYXRvclBy
aXZhdGVfaAorI2RlZmluZSBTdGFja0l0ZXJhdG9yUHJpdmF0ZV9oCisKK25hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKU0Z1bmN0aW9uOworY2xhc3MgVk07CisKK3R5
cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKKworY2xhc3MgU3RhY2tJdGVyYXRvciB7CitwdWJs
aWM6CisgICAgY2xhc3MgRnJhbWU7CisgICAgdHlwZWRlZiBib29sICgqRnJhbWVGaWx0ZXIpKEZy
YW1lKik7CisKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgbnVtYmVyT2ZGcmFtZXMoKTsK
KworICAgIEZyYW1lJiBvcGVyYXRvciooKSB7IHJldHVybiAqbV9mcmFtZTsgfQorICAgIEFMV0FZ
U19JTkxJTkUgRnJhbWUqIG9wZXJhdG9yLT4oKSB7IHJldHVybiBtX2ZyYW1lOyB9CisKKyAgICBi
b29sIG9wZXJhdG9yPT0oRnJhbWUqIGZyYW1lKSB7IHJldHVybiBtX2ZyYW1lID09IGZyYW1lOyB9
CisgICAgYm9vbCBvcGVyYXRvciE9KEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gbV9mcmFtZSAhPSBm
cmFtZTsgfQorICAgIHZvaWQgb3BlcmF0b3IrKygpIHsgZ290b05leHRGcmFtZSgpOyB9CisgICAg
dm9pZCBmaW5kKEpTRnVuY3Rpb24qKTsKKworcHJpdmF0ZToKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogc3RhcnRGcmFtZSwgRnJhbWVGaWx0ZXIgPSAwKTsK
KworICAgIHN0YXRpYyBGcmFtZSogZW5kKCkgeyByZXR1cm4gMDsgfQorICAgIHZvaWQgZ290b0Zy
YW1lQXRJbmRleChzaXplX3QgZnJhbWVJbmRleCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBnb3RvTmV4dEZyYW1lKCk7CisgICAgdm9pZCByZXNldEl0ZXJhdG9yKCk7CisKKyAgICBDYWxs
RnJhbWUqIG1fc3RhcnRGcmFtZTsKKyAgICBzaXplX3QgbV9mcmFtZUluZGV4OworICAgIEZyYW1l
KiBtX2ZyYW1lOworICAgIEZyYW1lRmlsdGVyIG1fZmlsdGVyOworCisgICAgZnJpZW5kIGNsYXNz
IEV4ZWNTdGF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gU3RhY2tJ
dGVyYXRvclByaXZhdGVfaAorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>