<?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>92268</bug_id>
          
          <creation_ts>2012-07-25 10:45:44 -0700</creation_ts>
          <short_desc>REGRESSION(r123560): Caused valgrind and other test failures on Chromium. (Requested by atwilson on #webkit).</short_desc>
          <delta_ts>2012-07-25 15:58:50 -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>90321</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>atwilson</cc>
    
    <cc>ggaren</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>678225</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 10:45:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/123560 broke the build:
Caused valgrind and other test failures on Chromium. (Requested by atwilson on #webkit).

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

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678226</commentid>
    <comment_count>1</comment_count>
      <attachid>154391</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 10:46:19 -0700</bug_when>
    <thetext>Created attachment 154391
ROLLOUT of r123560

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>678233</commentid>
    <comment_count>2</comment_count>
      <attachid>154391</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 10:51:55 -0700</bug_when>
    <thetext>Comment on attachment 154391
ROLLOUT of r123560

Rejecting attachment 154391 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
 saving rejects to file Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp.rej
patching file Source/WebCore/platform/text/SegmentedString.cpp
patching file Source/WebCore/platform/text/SegmentedString.h
patching file Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h
patching file Source/WebCore/xml/parser/MarkupTokenizerBase.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13347326</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678559</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-25 15:58:50 -0700</bug_when>
    <thetext>Per a comment in bug 90321, this has been committed (manually?) in &lt;http://trac.webkit.org/changeset/123635&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154391</attachid>
            <date>2012-07-25 10:46:19 -0700</date>
            <delta_ts>2012-07-25 10:51:55 -0700</delta_ts>
            <desc>ROLLOUT of r123560</desc>
            <filename>bug-92268-20120725175151.patch</filename>
            <type>text/plain</type>
            <size>36677</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmZjEyNjJjM2NmOGRkMGJiZDJmYzZm
MTAwMzE1ODk1NTM4YjkxM2EuLjU0NGRlZmMwYWRiNmM4YWNhZmEwYmE4NzQ3NGY5Yjk3NmI5OTgx
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDctMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxMjM1NjAuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzU2
MAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIyNjgK
KworICAgICAgICBDYXVzZWQgdmFsZ3JpbmQgYW5kIG90aGVyIHRlc3QgZmFpbHVyZXMgb24gQ2hy
b21pdW0uCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgYXR3aWxzb24gb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKwogMjAxMi0wNy0yNSAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVGhlcmUgYXJlIHBhcmFs
bGVsIEdDIHJlbGF0ZWQgY3Jhc2hlcyByZWd1bGFybHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNTE0MzUwMGE0
YjY5YjNhODFkZTJjZDY5OGNmMjBiMTEyYWEyOGQxLi4xYzRjYjBjMzc5NzVmZGVkNjQzOGMxNmJh
NDViMjRkZTczM2E1MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTItMDctMjUg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjM1NjAuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzEyMzU2MAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTIyNjgKKworICAgICAgICBDYXVzZWQgdmFsZ3JpbmQgYW5kIG90aGVy
IHRlc3QgZmFpbHVyZXMgb24gQ2hyb21pdW0uCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgYXR3aWxz
b24gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBlbmQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVudGl0eVBhcnNlcjo6Y29uc3VtZU5hbWVkRW50aXR5KToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIv
SFRNTFNvdXJjZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNr
ZXI6OnNvdXJjZUZvclRva2VuKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6c2NyaXB0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZWdtZW50ZWRTdHJpbmc6OlNlZ21lbnRlZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTZWdt
ZW50ZWRTdHJpbmc6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJp
bmc6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6cHJlcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VTdWJzdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21l
bnRlZFN0cmluZzo6YWR2YW5jZVNsb3dDYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRl
ZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJTbG93Q2FzZSk6CisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21l
bnRlZFN1YnN0cmluZzo6U2VnbWVudGVkU3Vic3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
Z21lbnRlZFN1YnN0cmluZzo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3Vi
c3RyaW5nOjphcHBlbmRUbyk6CisgICAgICAgIChTZWdtZW50ZWRTdWJzdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTZWdtZW50ZWRTdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpwdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21l
bnRlZFN0cmluZzo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6
Omxvb2tBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVh
ZElnbm9yaW5nQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFu
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlQW5kQVNTRVJU
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUFuZEFTU0VSVEln
bm9yaW5nQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VQ
YXN0TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIpOgorICAgICAgICAoU2VnbWVudGVkU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVBhc3ROb25OZXds
aW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0
ZUxpbmVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpvcGVyYXRv
ciopOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpvcGVyYXRvci0+KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6Y3VycmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0xpdGVyYWxseSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0lnbm9yaW5nQ2FzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElubGluZSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZFNsb3dDYXNlKToKKyAgICAgICAgKiB4bWwvcGFyc2Vy
L0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UpOgorICAgICAgICAqIHhtbC9wYXJzZXIvTWFy
a3VwVG9rZW5pemVyQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwVG9rZW5pemVyQmFz
ZTo6SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6Om5leHRJbnB1dENoYXJhY3Rlcik6CisgICAgICAg
IChXZWJDb3JlOjpNYXJrdXBUb2tlbml6ZXJCYXNlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6
cGVlayk6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBUb2tlbml6ZXJCYXNlOjpJbnB1dFN0cmVh
bVByZXByb2Nlc3Nvcjo6YWR2YW5jZSk6CisKKzIwMTItMDctMjUgIFNoYXduIFNpbmdoICA8c2hh
d25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBCdWlsZCBmaXggZm9y
IGNsYW5nIGJ1aWxkcyBhZnRlciByMTIzNjI4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjI2NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmllbm5l
IFdhbGtlci4KKworICAgICAgICBBbiB1bi11c2VkIHZhcmlhYmxlIHdhcyBjYXVzaW5nIGJ1aWxk
IGZhaWx1cmVzIGZvciBjbGFuZyBidWlsZHMKKyAgICAgICAgYWZ0ZXIgdGhlIHJlZmFjdG9yaW5n
IGluIHIxMjM2MjguICBJdCBpcyBjb3JyZWN0IHRvIHNpbXBseSByZW1vdmUKKyAgICAgICAgdGhp
cyB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJh
bnNmb3Jtc0ludGVybmFsKToKKwogMjAxMi0wNy0yNSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBKYXZhU2NyaXB0IEFQSTogZXh0cmFjdCBmdW5j
dGlvbiBmcm9tIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjplbW1hKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0
cmluZy5oCmluZGV4IDM1MTQ0ZmE0MzBlNWRlZTRhYjUyZmM2YWY1MWIzYTk5YTcwMDM0MTkuLjlm
NDkyYTdhMWQ2MjM2Yjg3OGU4ZmJiNjIwZDM0ZDE0YTVjYTA0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuaApAQCAtMTkwLDEzICsxOTAsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzOEJpdCgp
IGNvbnN0IHsgcmV0dXJuIG1faW1wbC0+aXM4Qml0KCk7IH0KIAotICAgIHVuc2lnbmVkIHNpemVJ
bkJ5dGVzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghbV9pbXBsKQotICAgICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBtX2ltcGwtPmxlbmd0aCgpICogKGlzOEJpdCgpID8g
c2l6ZW9mKExDaGFyKSA6IHNpemVvZihVQ2hhcikpOwotICAgIH0KLQogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBDU3RyaW5nIGFzY2lpKCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIENT
dHJpbmcgbGF0aW4xKCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRm
OChib29sIHN0cmljdCA9IGZhbHNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5jcHAKaW5kZXggMzE5YjhkMmZlZDczZjNmMzBiNmE3NWJiY2Q2ZDFj
NWM5YjI4NDE5OC4uMTg2ODljOTdmZDMzOTcwZWMyY2M4MGMzZjc3MTg3OGYwM2M3MDU1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTM2OCw3
ICszNjgsNyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBlbmQoY29uc3Qg
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgbV9kZXN0ID0gbV9idWZmZXI7CiAgICAgU2Vn
bWVudGVkU3RyaW5nIHN0ciA9IHNvdXJjZTsKICAgICB3aGlsZSAoIXN0ci5pc0VtcHR5KCkpIHsK
LSAgICAgICAgVUNoYXIgYyA9IHN0ci5jdXJyZW50Q2hhcigpOworICAgICAgICBVQ2hhciBjID0g
KnN0cjsKIAogICAgICAgICBpZiAoYyA9PSAnXHInKSB7CiAgICAgICAgICAgICAqbV9kZXN0Kysg
PSAnXG4nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0
eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2Vy
LmNwcAppbmRleCAxODcxODA1NGJmYWE0ZjhjY2U4YWY4ZGJkMWYwMzBlYmRmZDBmZTZkLi40NDJj
ZWRiYzJmN2IwMjQ0YjI3MmQ1ODJkNTNjMTUzOGY2ODdmOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcApAQCAtODcsNyArODcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgY29uc3VtZWRDaGFyYWN0ZXJzOwogICAgICAg
ICBIVE1MRW50aXR5U2VhcmNoIGVudGl0eVNlYXJjaDsKICAgICAgICAgd2hpbGUgKCFzb3VyY2Uu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBjYyA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOworICAg
ICAgICAgICAgY2MgPSAqc291cmNlOwogICAgICAgICAgICAgZW50aXR5U2VhcmNoLmFkdmFuY2Uo
Y2MpOwogICAgICAgICAgICAgaWYgKCFlbnRpdHlTZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTExNCwxMyArMTE0LDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGNvbnN0IGludCBsZW5ndGggPSBlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCkt
Pmxlbmd0aDsKICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiByZWZlcmVuY2UgPSBlbnRpdHlTZWFy
Y2gubW9zdFJlY2VudE1hdGNoKCktPmVudGl0eTsKICAgICAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBjYyA9IHNvdXJjZS5jdXJyZW50
Q2hhcigpOworICAgICAgICAgICAgICAgIGNjID0gKnNvdXJjZTsKICAgICAgICAgICAgICAgICBB
U1NFUlRfVU5VU0VEKHJlZmVyZW5jZSwgY2MgPT0gKnJlZmVyZW5jZSsrKTsKICAgICAgICAgICAg
ICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKGNjKTsKICAgICAgICAgICAgICAgICBzb3Vy
Y2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFzb3VyY2Uu
aXNFbXB0eSgpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNjID0gc291cmNlLmN1cnJl
bnRDaGFyKCk7CisgICAgICAgICAgICBjYyA9ICpzb3VyY2U7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGVudGl0eVNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+bGFzdENoYXJhY3RlcigpID09ICc7
JwogICAgICAgICAgICAgfHwgIWFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCmluZGV4IDhmMDU3YjEy
MmJhY2JkNjFiZDNkMzEzMmFkNzIwYzc4ODRjYTA2NTEuLmMzYmVjYzM2MGQ0ZmFmZjU3MTQ1N2Yz
MDk1MGE2MWE2ODg2MzA2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQYXJzZXJJZGlvbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxQYXJzZXJJZGlvbXMuY3BwCkBAIC0zNCwxMyArMzQsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1zdGF0aWMgU3RyaW5nIHN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhTdHJpbmcgc3RyaW5nLCBDaGFyVHlwZSBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitTdHJpbmcgc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdI
VE1MU3BhY2VzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHVuc2lnbmVkIG51bUxlYWRp
bmdTcGFjZXMgPSAwOwotICAgIHVuc2lnbmVkIG51bVRyYWlsaW5nU3BhY2VzID0gMDsKKyAgICBj
b25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHN0cmluZy5jaGFyYWN0ZXJzKCk7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOwogCi0gICAgZm9yICg7IG51bUxlYWRpbmdTcGFj
ZXMgPCBsZW5ndGg7ICsrbnVtTGVhZGluZ1NwYWNlcykgeworICAgIHVuc2lnbmVkIG51bUxlYWRp
bmdTcGFjZXM7CisgICAgZm9yIChudW1MZWFkaW5nU3BhY2VzID0gMDsgbnVtTGVhZGluZ1NwYWNl
cyA8IGxlbmd0aDsgKytudW1MZWFkaW5nU3BhY2VzKSB7CiAgICAgICAgIGlmIChpc05vdEhUTUxT
cGFjZShjaGFyYWN0ZXJzW251bUxlYWRpbmdTcGFjZXNdKSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgIH0KQEAgLTQ4LDMyICs0OCwxNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ0FuZFRy
YWlsaW5nSFRNTFNwYWNlcyhTdHJpbmcgc3RyaW5nLCBDaGFyVHlwZSBjaGFyYWN0ZQogICAgIGlm
IChudW1MZWFkaW5nU3BhY2VzID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIHN0cmluZy5pc051
bGwoKSA/IHN0cmluZyA6IGVtcHR5QXRvbS5zdHJpbmcoKTsKIAotICAgIGZvciAoOyBudW1UcmFp
bGluZ1NwYWNlcyA8IGxlbmd0aDsgKytudW1UcmFpbGluZ1NwYWNlcykgeworICAgIHVuc2lnbmVk
IG51bVRyYWlsaW5nU3BhY2VzOworICAgIGZvciAobnVtVHJhaWxpbmdTcGFjZXMgPSAwOyBudW1U
cmFpbGluZ1NwYWNlcyA8IGxlbmd0aDsgKytudW1UcmFpbGluZ1NwYWNlcykgewogICAgICAgICBp
ZiAoaXNOb3RIVE1MU3BhY2UoY2hhcmFjdGVyc1tsZW5ndGggLSBudW1UcmFpbGluZ1NwYWNlcyAt
IDFdKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVChudW1MZWFkaW5n
U3BhY2VzICsgbnVtVHJhaWxpbmdTcGFjZXMgPCBsZW5ndGgpOwogCi0gICAgaWYgKCEobnVtTGVh
ZGluZ1NwYWNlcyB8IG51bVRyYWlsaW5nU3BhY2VzKSkKLSAgICAgICAgcmV0dXJuIHN0cmluZzsK
LQogICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKG51bUxlYWRpbmdTcGFjZXMsIGxlbmd0aCAt
IChudW1MZWFkaW5nU3BhY2VzICsgbnVtVHJhaWxpbmdTcGFjZXMpKTsKIH0KIAotU3RyaW5nIHN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsK
LSAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0KLSAgICBpZiAoIWxlbmd0
aCkKLSAgICAgICAgcmV0dXJuIHN0cmluZy5pc051bGwoKSA/IHN0cmluZyA6IGVtcHR5QXRvbS5z
dHJpbmcoKTsKLQotICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBzdHJp
cExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc3RyaW5nLCBzdHJpbmcuY2hhcmFjdGVyczgo
KSwgbGVuZ3RoKTsKLQotICAgIHJldHVybiBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMoc3RyaW5nLCBzdHJpbmcuY2hhcmFjdGVycygpLCBsZW5ndGgpOwotfQotCiBTdHJpbmcgc2Vy
aWFsaXplRm9yTnVtYmVyVHlwZShjb25zdCBEZWNpbWFsJiBudW1iZXIpCiB7CiAgICAgaWYgKG51
bWJlci5pc1plcm8oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFNvdXJjZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNv
dXJjZVRyYWNrZXIuY3BwCmluZGV4IGIwNDJkZDY1N2VhNGYyMDc5NTIyYzA3YzZmNDVhMDdmNDlh
NjhiMTkuLmU3YzY4NzY0YjgzYzg5ZWY5MzQzNzFkNThkNDEyYjVjZmIyMzIyMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKQEAgLTcx
LDEyICs3MSwxMiBAQCBTdHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZUZvclRva2VuKGNv
bnN0IEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBzaXplX3QgaSA9IDA7CiAgICAgZm9yICggOyBp
IDwgbGVuZ3RoICYmICFtX3ByZXZpb3VzU291cmNlLmlzRW1wdHkoKTsgKytpKSB7Ci0gICAgICAg
IHNvdXJjZS5hcHBlbmQobV9wcmV2aW91c1NvdXJjZS5jdXJyZW50Q2hhcigpKTsKKyAgICAgICAg
c291cmNlLmFwcGVuZCgqbV9wcmV2aW91c1NvdXJjZSk7CiAgICAgICAgIG1fcHJldmlvdXNTb3Vy
Y2UuYWR2YW5jZSgpOwogICAgIH0KICAgICBmb3IgKCA7IGkgPCBsZW5ndGg7ICsraSkgewogICAg
ICAgICBBU1NFUlQoIW1fY3VycmVudFNvdXJjZS5pc0VtcHR5KCkpOwotICAgICAgICBzb3VyY2Uu
YXBwZW5kKG1fY3VycmVudFNvdXJjZS5jdXJyZW50Q2hhcigpKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZCgqbV9jdXJyZW50U291cmNlKTsKICAgICAgICAgbV9jdXJyZW50U291cmNlLmFkdmFuY2Uo
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5j
cHAKaW5kZXggODM3NTFlY2E3YzAyMDcyMjBkMDA3MzI4YTY3MGZlMTgzNGQ5MWQ0Ny4uOGM4M2Jj
YTg4MjY1MTI0ZTI4ZWEwYTg4NGM4ZmY4OTBiNDVhZTcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgY29uc3QgU3Ry
aW5nJiBDYWNoZWRTY3JpcHQ6OnNjcmlwdCgpCiAgICAgaWYgKCFtX3NjcmlwdCAmJiBtX2RhdGEp
IHsKICAgICAgICAgbV9zY3JpcHQgPSBtX2RlY29kZXItPmRlY29kZShtX2RhdGEtPmRhdGEoKSwg
ZW5jb2RlZFNpemUoKSk7CiAgICAgICAgIG1fc2NyaXB0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsK
LSAgICAgICAgc2V0RGVjb2RlZFNpemUobV9zY3JpcHQuc2l6ZUluQnl0ZXMoKSk7CisgICAgICAg
IHNldERlY29kZWRTaXplKG1fc2NyaXB0Lmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSk7CiAgICAg
fQogICAgIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDljYjkxZjFk
MDE0MTczMTVlYjVhZTgzYzI5YWU4NDY5NTRkNmZjNTUuLjUzZDI2NWMyOWQ4MDdiZjc1ZDY0MmE2
OGVmNmUzYTFjZjE5MGIwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcApAQCAtNzMwLDcgKzczMCw2IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFu
c2Zvcm1zSW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXJUeXBlKiByb290TGF5CiAgICAg
aWYgKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkgJiYgbGF5ZXIgIT0gcm9vdExheWVyKSB7CiAgICAg
ICAgIFJlbmRlclN1cmZhY2VUeXBlKiByZW5kZXJTdXJmYWNlID0gbGF5ZXItPnJlbmRlclN1cmZh
Y2UoKTsKICAgICAgICAgSW50UmVjdCBjbGlwcGVkQ29udGVudFJlY3QgPSBsb2NhbERyYXdhYmxl
Q29udGVudFJlY3RPZlN1YnRyZWU7Ci0gICAgICAgIEZsb2F0UG9pbnQgc3VyZmFjZUNlbnRlciA9
IEZsb2F0UmVjdChjbGlwcGVkQ29udGVudFJlY3QpLmNlbnRlcigpOwogCiAgICAgICAgIC8vIFRo
ZSByZW5kZXIgc3VyZmFjZSBjbGlwUmVjdCBpcyBleHByZXNzZWQgaW4gdGhlIHNwYWNlIHdoZXJl
IHRoaXMgc3VyZmFjZSBkcmF3cywgaS5lLiB0aGUgc2FtZSBzcGFjZSBhcyBjbGlwUmVjdEZyb21B
bmNlc3Rvci4KICAgICAgICAgaWYgKGFuY2VzdG9yQ2xpcHNTdWJ0cmVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGY5MDg4MjE3
ZjIxN2Q5YzA5YmExMDgxZmI1NDYzMWE3MzI2Y2UxN2YuLjYzMzczYmE3YTNjMTNlN2Y2ZDY5MjI0
OGJmYjlhMjIxMzE2MjZlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvU2VnbWVudGVkU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1NlZ21lbnRlZFN0cmluZy5jcHAKQEAgLTI4LDE2ICsyOCwxMyBAQCBTZWdtZW50ZWRTdHJpbmc6
OlNlZ21lbnRlZFN0cmluZyhjb25zdCBTZWdtZW50ZWRTdHJpbmcmIG90aGVyKQogICAgICwgbV9j
dXJyZW50U3RyaW5nKG90aGVyLm1fY3VycmVudFN0cmluZykKICAgICAsIG1fc3Vic3RyaW5ncyhv
dGhlci5tX3N1YnN0cmluZ3MpCiAgICAgLCBtX2Nsb3NlZChvdGhlci5tX2Nsb3NlZCkKLSAgICAs
IG1fZW1wdHkob3RoZXIubV9lbXB0eSkKLSAgICAsIG1fYWR2YW5jZUZ1bmMob3RoZXIubV9hZHZh
bmNlRnVuYykKLSAgICAsIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jKG90aGVyLm1f
YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jKQogewotICAgIGlmIChtX3B1c2hlZENoYXIy
KQotICAgICAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMjsKLSAgICBlbHNlIGlmICht
X3B1c2hlZENoYXIxKQotICAgICAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMTsKKyAg
ICBpZiAob3RoZXIubV9jdXJyZW50Q2hhciA9PSAmb3RoZXIubV9wdXNoZWRDaGFyMSkKKyAgICAg
ICAgbV9jdXJyZW50Q2hhciA9ICZtX3B1c2hlZENoYXIxOworICAgIGVsc2UgaWYgKG90aGVyLm1f
Y3VycmVudENoYXIgPT0gJm90aGVyLm1fcHVzaGVkQ2hhcjIpCisgICAgICAgIG1fY3VycmVudENo
YXIgPSAmbV9wdXNoZWRDaGFyMjsKICAgICBlbHNlCi0gICAgICAgIG1fY3VycmVudENoYXIgPSBt
X2N1cnJlbnRTdHJpbmcubV9sZW5ndGggPyBtX2N1cnJlbnRTdHJpbmcuZ2V0Q3VycmVudENoYXIo
KSA6IDA7CisgICAgICAgIG1fY3VycmVudENoYXIgPSBvdGhlci5tX2N1cnJlbnRDaGFyOwogfQog
CiBjb25zdCBTZWdtZW50ZWRTdHJpbmcmIFNlZ21lbnRlZFN0cmluZzo6b3BlcmF0b3I9KGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYgb3RoZXIpCkBAIC00NiwyMiArNDMsMTcgQEAgY29uc3QgU2VnbWVu
dGVkU3RyaW5nJiBTZWdtZW50ZWRTdHJpbmc6Om9wZXJhdG9yPShjb25zdCBTZWdtZW50ZWRTdHJp
bmcmIG90aGVyKQogICAgIG1fcHVzaGVkQ2hhcjIgPSBvdGhlci5tX3B1c2hlZENoYXIyOwogICAg
IG1fY3VycmVudFN0cmluZyA9IG90aGVyLm1fY3VycmVudFN0cmluZzsKICAgICBtX3N1YnN0cmlu
Z3MgPSBvdGhlci5tX3N1YnN0cmluZ3M7Ci0gICAgaWYgKG1fcHVzaGVkQ2hhcjIpCi0gICAgICAg
IG1fY3VycmVudENoYXIgPSBtX3B1c2hlZENoYXIyOwotICAgIGVsc2UgaWYgKG1fcHVzaGVkQ2hh
cjEpCi0gICAgICAgIG1fY3VycmVudENoYXIgPSBtX3B1c2hlZENoYXIxOworICAgIGlmIChvdGhl
ci5tX2N1cnJlbnRDaGFyID09ICZvdGhlci5tX3B1c2hlZENoYXIxKQorICAgICAgICBtX2N1cnJl
bnRDaGFyID0gJm1fcHVzaGVkQ2hhcjE7CisgICAgZWxzZSBpZiAob3RoZXIubV9jdXJyZW50Q2hh
ciA9PSAmb3RoZXIubV9wdXNoZWRDaGFyMikKKyAgICAgICAgbV9jdXJyZW50Q2hhciA9ICZtX3B1
c2hlZENoYXIyOwogICAgIGVsc2UKLSAgICAgICAgbV9jdXJyZW50Q2hhciA9IG1fY3VycmVudFN0
cmluZy5tX2xlbmd0aCA/IG1fY3VycmVudFN0cmluZy5nZXRDdXJyZW50Q2hhcigpIDogMDsKLQor
ICAgICAgICBtX2N1cnJlbnRDaGFyID0gb3RoZXIubV9jdXJyZW50Q2hhcjsKICAgICBtX2Nsb3Nl
ZCA9IG90aGVyLm1fY2xvc2VkOwotICAgIG1fZW1wdHkgPSBvdGhlci5tX2VtcHR5OwogICAgIG1f
bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN0cmluZyA9IG90aGVyLm1f
bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN0cmluZzsKICAgICBtX251
bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JUb0N1cnJlbnRMaW5lID0gb3RoZXIubV9udW1i
ZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZTsKICAgICBtX2N1cnJlbnRM
aW5lID0gb3RoZXIubV9jdXJyZW50TGluZTsKIAotICAgIG1fYWR2YW5jZUZ1bmMgPSBvdGhlci5t
X2FkdmFuY2VGdW5jOwotICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jID0gb3Ro
ZXIubV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1bmM7Ci0KICAgICByZXR1cm4gKnRoaXM7
CiB9CiAKQEAgLTEwNCw5ICs5Niw2IEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpjbGVhcigpCiAg
ICAgbV9jdXJyZW50TGluZSA9IDA7CiAgICAgbV9zdWJzdHJpbmdzLmNsZWFyKCk7CiAgICAgbV9j
bG9zZWQgPSBmYWxzZTsKLSAgICBtX2VtcHR5ID0gdHJ1ZTsKLSAgICBtX2FkdmFuY2VGdW5jID0g
JlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUVtcHR5OwotICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxp
bmVOdW1iZXJGdW5jID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUVtcHR5OwogfQogCiB2b2lk
IFNlZ21lbnRlZFN0cmluZzo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN1YnN0cmluZyYgcykKQEAg
LTExOCwxMCArMTA3LDggQEAgdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFwcGVuZChjb25zdCBTZWdt
ZW50ZWRTdWJzdHJpbmcmIHMpCiAgICAgaWYgKCFtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGgpIHsK
ICAgICAgICAgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3RyaW5n
ICs9IG1fY3VycmVudFN0cmluZy5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpOwogICAgICAg
ICBtX2N1cnJlbnRTdHJpbmcgPSBzOwotICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2lu
dGVycygpOwogICAgIH0gZWxzZQogICAgICAgICBtX3N1YnN0cmluZ3MuYXBwZW5kKHMpOwotICAg
IG1fZW1wdHkgPSBmYWxzZTsKIH0KIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OnByZXBlbmQoY29u
c3QgU2VnbWVudGVkU3Vic3RyaW5nJiBzKQpAQCAtMTM4LDE2ICsxMjUsMTMgQEAgdm9pZCBTZWdt
ZW50ZWRTdHJpbmc6OnByZXBlbmQoY29uc3QgU2VnbWVudGVkU3Vic3RyaW5nJiBzKQogICAgIC8v
ICAgICAgICBjYXNlcyBpbiB0aGUgZnV0dXJlLgogICAgIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29u
c3VtZWRQcmlvclRvQ3VycmVudFN0cmluZyArPSBtX2N1cnJlbnRTdHJpbmcubnVtYmVyT2ZDaGFy
YWN0ZXJzQ29uc3VtZWQoKTsKICAgICBtX251bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JU
b0N1cnJlbnRTdHJpbmcgLT0gcy5tX2xlbmd0aDsKLSAgICBpZiAoIW1fY3VycmVudFN0cmluZy5t
X2xlbmd0aCkgeworICAgIGlmICghbV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoKQogICAgICAgICBt
X2N1cnJlbnRTdHJpbmcgPSBzOwotICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVy
cygpOwotICAgIH0gZWxzZSB7CisgICAgZWxzZSB7CiAgICAgICAgIC8vIFNoaWZ0IG91ciBtX2N1
cnJlbnRTdHJpbmcgaW50byBvdXIgbGlzdC4KICAgICAgICAgbV9zdWJzdHJpbmdzLnByZXBlbmQo
bV9jdXJyZW50U3RyaW5nKTsKICAgICAgICAgbV9jdXJyZW50U3RyaW5nID0gczsKLSAgICAgICAg
dXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnMoKTsKICAgICB9Ci0gICAgbV9lbXB0eSA9IGZh
bHNlOwogfQogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6Y2xvc2UoKQpAQCAtMTY4LDcgKzE1Miw3
IEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBz
KQogICAgICAgICBmb3IgKDsgaXQgIT0gZTsgKytpdCkKICAgICAgICAgICAgIGFwcGVuZCgqaXQp
OwogICAgIH0KLSAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMSA/IG1fcHVzaGVkQ2hh
cjEgOiAobV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoID8gbV9jdXJyZW50U3RyaW5nLmdldEN1cnJl
bnRDaGFyKCkgOiAwKTsKKyAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMSA/ICZtX3B1
c2hlZENoYXIxIDogbV9jdXJyZW50U3RyaW5nLm1fY3VycmVudDsKIH0KIAogdm9pZCBTZWdtZW50
ZWRTdHJpbmc6OnByZXBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzKQpAQCAtMTgyLDcgKzE2
Niw3IEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjpwcmVwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYgcykKICAgICAgICAgICAgIHByZXBlbmQoKml0KTsKICAgICB9CiAgICAgcHJlcGVuZChzLm1f
Y3VycmVudFN0cmluZyk7Ci0gICAgbV9jdXJyZW50Q2hhciA9IG1fcHVzaGVkQ2hhcjEgPyBtX3B1
c2hlZENoYXIxIDogKG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA/IG1fY3VycmVudFN0cmluZy5n
ZXRDdXJyZW50Q2hhcigpIDogMCk7CisgICAgbV9jdXJyZW50Q2hhciA9IG1fcHVzaGVkQ2hhcjEg
PyAmbV9wdXNoZWRDaGFyMSA6IG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQ7CiB9CiAKIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlU3Vic3RyaW5nKCkKQEAgLTE5NCwxMyArMTc4LDggQEAg
dm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VTdWJzdHJpbmcoKQogICAgICAgICAvLyBzdHJp
bmcsIHdlIG5vdyBhY2NvdW50IGZvciB0aG9zZSBjaGFyYWN0ZXJzIGFzIHBhcnQgb2YgdGhlIGN1
cnJlbnQKICAgICAgICAgLy8gc3RyaW5nLCBub3QgYXMgcGFydCBvZiAicHJpb3IgdG8gY3VycmVu
dCBzdHJpbmcuIgogICAgICAgICBtX251bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JUb0N1
cnJlbnRTdHJpbmcgLT0gbV9jdXJyZW50U3RyaW5nLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVk
KCk7Ci0gICAgICAgIHVwZGF0ZUFkdmFuY2VGdW5jdGlvblBvaW50ZXJzKCk7Ci0gICAgfSBlbHNl
IHsKKyAgICB9IGVsc2UKICAgICAgICAgbV9jdXJyZW50U3RyaW5nLmNsZWFyKCk7Ci0gICAgICAg
IG1fZW1wdHkgPSB0cnVlOwotICAgICAgICBtX2FkdmFuY2VGdW5jID0gJlNlZ21lbnRlZFN0cmlu
Zzo6YWR2YW5jZUVtcHR5OwotICAgICAgICBtX2FkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyRnVu
YyA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VFbXB0eTsKLSAgICB9CiB9CiAKIFN0cmluZyBT
ZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKQEAgLTIyNSw3MSArMjA0LDIyIEBAIHZv
aWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlKHVuc2lnbmVkIGNvdW50LCBVQ2hhciogY29uc3Vt
ZWRDaGFyYWN0ZXJzKQogewogICAgIEFTU0VSVChjb3VudCA8PSBsZW5ndGgoKSk7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgY29uc3VtZWRDaGFy
YWN0ZXJzW2ldID0gY3VycmVudENoYXIoKTsKKyAgICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzW2ld
ID0gKmN1cnJlbnQoKTsKICAgICAgICAgYWR2YW5jZSgpOwogICAgIH0KIH0KIAotdm9pZCBTZWdt
ZW50ZWRTdHJpbmc6OmFkdmFuY2U4KCkKLXsKLSAgICBBU1NFUlQoIW1fcHVzaGVkQ2hhcjEpOwot
ICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3RoKCk7Ci0gICAgbV9jdXJyZW50Q2hhciA9IG1fY3Vy
cmVudFN0cmluZy5pbmNyZW1lbnRBbmRHZXRDdXJyZW50Q2hhcjgoKTsKLX0KLQotdm9pZCBTZWdt
ZW50ZWRTdHJpbmc6OmFkdmFuY2UxNigpCi17Ci0gICAgQVNTRVJUKCFtX3B1c2hlZENoYXIxKTsK
LSAgICBkZWNyZW1lbnRBbmRDaGVja0xlbmd0aCgpOwotICAgIG1fY3VycmVudENoYXIgPSBtX2N1
cnJlbnRTdHJpbmcuaW5jcmVtZW50QW5kR2V0Q3VycmVudENoYXIxNigpOwotfQotCi12b2lkIFNl
Z21lbnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXI4KCkKLXsKLSAgICBBU1NF
UlQoIW1fcHVzaGVkQ2hhcjEpOwotICAgIEFTU0VSVChtX2N1cnJlbnRTdHJpbmcuZ2V0Q3VycmVu
dENoYXIoKSA9PSBtX2N1cnJlbnRDaGFyKTsKLSAgICBpZiAobV9jdXJyZW50Q2hhciA9PSAnXG4n
KSB7Ci0gICAgICAgICsrbV9jdXJyZW50TGluZTsKLSAgICAgICAgbV9udW1iZXJPZkNoYXJhY3Rl
cnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZSA9IG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVk
KCkgKyAxOwotICAgIH0KLSAgICBkZWNyZW1lbnRBbmRDaGVja0xlbmd0aCgpOwotICAgIG1fY3Vy
cmVudENoYXIgPSBtX2N1cnJlbnRTdHJpbmcuaW5jcmVtZW50QW5kR2V0Q3VycmVudENoYXI4KCk7
Ci19Ci0KLXZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcjE2
KCkKLXsKLSAgICBBU1NFUlQoIW1fcHVzaGVkQ2hhcjEpOwotICAgIEFTU0VSVChtX2N1cnJlbnRT
dHJpbmcuZ2V0Q3VycmVudENoYXIoKSA9PSBtX2N1cnJlbnRDaGFyKTsKLSAgICBpZiAobV9jdXJy
ZW50Q2hhciA9PSAnXG4nKSB7Ci0gICAgICAgICsrbV9jdXJyZW50TGluZTsKLSAgICAgICAgbV9u
dW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZSA9IG51bWJlck9mQ2hh
cmFjdGVyc0NvbnN1bWVkKCkgKyAxOwotICAgIH0KLSAgICBkZWNyZW1lbnRBbmRDaGVja0xlbmd0
aCgpOwotICAgIG1fY3VycmVudENoYXIgPSBtX2N1cnJlbnRTdHJpbmcuaW5jcmVtZW50QW5kR2V0
Q3VycmVudENoYXIxNigpOwotfQotCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVNsb3dD
YXNlKCkKIHsKICAgICBpZiAobV9wdXNoZWRDaGFyMSkgewogICAgICAgICBtX3B1c2hlZENoYXIx
ID0gbV9wdXNoZWRDaGFyMjsKICAgICAgICAgbV9wdXNoZWRDaGFyMiA9IDA7Ci0KLSAgICAgICAg
aWYgKG1fcHVzaGVkQ2hhcjEpIHsKLSAgICAgICAgICAgIG1fY3VycmVudENoYXIgPSBtX3B1c2hl
ZENoYXIxOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdXBkYXRl
QWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnMoKTsKLSAgICB9IGVsc2UgaWYgKG1fY3VycmVudFN0cmlu
Zy5tX2xlbmd0aCkgeworICAgIH0gZWxzZSBpZiAobV9jdXJyZW50U3RyaW5nLm1fY3VycmVudCkg
eworICAgICAgICArK21fY3VycmVudFN0cmluZy5tX2N1cnJlbnQ7CiAgICAgICAgIGlmICgtLW1f
Y3VycmVudFN0cmluZy5tX2xlbmd0aCA9PSAwKQogICAgICAgICAgICAgYWR2YW5jZVN1YnN0cmlu
ZygpOwotICAgIH0gZWxzZSBpZiAoIWlzQ29tcG9zaXRlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50
U3RyaW5nLmNsZWFyKCk7Ci0gICAgICAgIG1fZW1wdHkgPSB0cnVlOwotICAgICAgICBtX2FkdmFu
Y2VGdW5jID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZUVtcHR5OwotICAgICAgICBtX2FkdmFu
Y2VBbmRVcGRhdGVMaW5lTnVtYmVyRnVuYyA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VFbXB0
eTsKICAgICB9Ci0gICAgbV9jdXJyZW50Q2hhciA9IG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA/
IG1fY3VycmVudFN0cmluZy5nZXRDdXJyZW50Q2hhcigpIDogMDsKKyAgICBtX2N1cnJlbnRDaGFy
ID0gbV9wdXNoZWRDaGFyMSA/ICZtX3B1c2hlZENoYXIxIDogbV9jdXJyZW50U3RyaW5nLm1fY3Vy
cmVudDsKIH0KIAogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVt
YmVyU2xvd0Nhc2UoKQpAQCAtMjk3LDM1ICsyMjcsMTYgQEAgdm9pZCBTZWdtZW50ZWRTdHJpbmc6
OmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyU2xvd0Nhc2UoKQogICAgIGlmIChtX3B1c2hlZENo
YXIxKSB7CiAgICAgICAgIG1fcHVzaGVkQ2hhcjEgPSBtX3B1c2hlZENoYXIyOwogICAgICAgICBt
X3B1c2hlZENoYXIyID0gMDsKLQotICAgICAgICBpZiAobV9wdXNoZWRDaGFyMSkgewotICAgICAg
ICAgICAgbV9jdXJyZW50Q2hhciA9IG1fcHVzaGVkQ2hhcjE7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICB1cGRhdGVBZHZhbmNlRnVuY3Rpb25Qb2ludGVycygpOwot
ICAgIH0gZWxzZSBpZiAobV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoKSB7Ci0gICAgICAgIGlmICht
X2N1cnJlbnRTdHJpbmcuaW5jcmVtZW50QW5kR2V0Q3VycmVudENoYXIoKSA9PSAnXG4nICYmIG1f
Y3VycmVudFN0cmluZy5kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycygpKSB7CisgICAgfSBlbHNlIGlm
IChtX2N1cnJlbnRTdHJpbmcubV9jdXJyZW50KSB7CisgICAgICAgIGlmICgqbV9jdXJyZW50U3Ry
aW5nLm1fY3VycmVudCsrID09ICdcbicgJiYgbV9jdXJyZW50U3RyaW5nLmRvTm90RXhjbHVkZUxp
bmVOdW1iZXJzKCkpIHsKICAgICAgICAgICAgICsrbV9jdXJyZW50TGluZTsKICAgICAgICAgICAg
IC8vIFBsdXMgMSBiZWNhdXNlIG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkIHZhbHVlIGhhc24n
dCBpbmNyZW1lbnRlZCB5ZXQ7IGl0IGRvZXMgd2l0aCBtX2xlbmd0aCBkZWNyZW1lbnQgYmVsb3cu
CiAgICAgICAgICAgICBtX251bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JUb0N1cnJlbnRM
aW5lID0gbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSArIDE7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKC0tbV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoID09IDApCiAgICAgICAgICAgICBhZHZh
bmNlU3Vic3RyaW5nKCk7Ci0gICAgfSBlbHNlIGlmICghaXNDb21wb3NpdGUoKSkgewotICAgICAg
ICBtX2N1cnJlbnRTdHJpbmcuY2xlYXIoKTsKLSAgICAgICAgbV9lbXB0eSA9IHRydWU7Ci0gICAg
ICAgIG1fYWR2YW5jZUZ1bmMgPSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlRW1wdHk7Ci0gICAg
ICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jID0gJlNlZ21lbnRlZFN0cmluZzo6
YWR2YW5jZUVtcHR5OwogICAgIH0KLQotICAgIG1fY3VycmVudENoYXIgPSBtX2N1cnJlbnRTdHJp
bmcubV9sZW5ndGggPyBtX2N1cnJlbnRTdHJpbmcuZ2V0Q3VycmVudENoYXIoKSA6IDA7Ci19Ci0K
LXZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlRW1wdHkoKQotewotICAgIEFTU0VSVCghbV9j
dXJyZW50U3RyaW5nLm1fbGVuZ3RoICYmICFpc0NvbXBvc2l0ZSgpKTsKLSAgICBtX2N1cnJlbnRD
aGFyID0gMDsKKyAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMSA/ICZtX3B1c2hlZENo
YXIxIDogbV9jdXJyZW50U3RyaW5nLm1fY3VycmVudDsKIH0KIAogT3JkaW5hbE51bWJlciBTZWdt
ZW50ZWRTdHJpbmc6OmN1cnJlbnRMaW5lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCmluZGV4IGRjNzk3MGE1Mzc4NzRlZGZhOTc3ZWNh
ZjJjNDc0YTMwNTJmZDJiNGQuLjc3N2E2NWU3YWExZjQ0NTQyNmY2YzcxNjJlMmE5NGJhMjRhYjE3
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3Ry
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcu
aApAQCAtMzMsMzIgKzMzLDIwIEBAIGNsYXNzIFNlZ21lbnRlZFN1YnN0cmluZyB7CiBwdWJsaWM6
CiAgICAgU2VnbWVudGVkU3Vic3RyaW5nKCkKICAgICAgICAgOiBtX2xlbmd0aCgwKQorICAgICAg
ICAsIG1fY3VycmVudCgwKQogICAgICAgICAsIG1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnModHJ1
ZSkKLSAgICAgICAgLCBtX2lzOEJpdChmYWxzZSkKICAgICB7Ci0gICAgICAgIG1fZGF0YS5zdHJp
bmcxNlB0ciA9IDA7CiAgICAgfQogCiAgICAgU2VnbWVudGVkU3Vic3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyKQogICAgICAgICA6IG1fbGVuZ3RoKHN0ci5sZW5ndGgoKSkKLSAgICAgICAgLCBtX2Rv
Tm90RXhjbHVkZUxpbmVOdW1iZXJzKHRydWUpCisgICAgICAgICwgbV9jdXJyZW50KHN0ci5pc0Vt
cHR5KCkgPyAwIDogc3RyLmNoYXJhY3RlcnMoKSkKICAgICAgICAgLCBtX3N0cmluZyhzdHIpCisg
ICAgICAgICwgbV9kb05vdEV4Y2x1ZGVMaW5lTnVtYmVycyh0cnVlKQogICAgIHsKLSAgICAgICAg
aWYgKG1fbGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAobV9zdHJpbmcuaXM4Qml0KCkpIHsKLSAg
ICAgICAgICAgICAgICBtX2lzOEJpdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbV9kYXRhLnN0
cmluZzhQdHIgPSBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBtX2lzOEJpdCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fZGF0
YS5zdHJpbmcxNlB0ciA9IG1fc3RyaW5nLmNoYXJhY3RlcnMxNigpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1faXM4Qml0ID0gZmFsc2U7CiAgICAgfQogCi0g
ICAgdm9pZCBjbGVhcigpIHsgbV9sZW5ndGggPSAwOyBtX2RhdGEuc3RyaW5nMTZQdHIgPSAwOyBt
X2lzOEJpdCA9IGZhbHNlO30KLSAgICAKLSAgICBib29sIGlzOEJpdCgpIHsgcmV0dXJuIG1faXM4
Qml0OyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9sZW5ndGggPSAwOyBtX2N1cnJlbnQgPSAwOyB9
CiAgICAgCiAgICAgYm9vbCBleGNsdWRlTGluZU51bWJlcnMoKSBjb25zdCB7IHJldHVybiAhbV9k
b05vdEV4Y2x1ZGVMaW5lTnVtYmVyczsgfQogICAgIGJvb2wgZG9Ob3RFeGNsdWRlTGluZU51bWJl
cnMoKSBjb25zdCB7IHJldHVybiBtX2RvTm90RXhjbHVkZUxpbmVOdW1iZXJzOyB9CkBAIC02OSw3
MCArNTcsMTkgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBlbmRUbyhTdHJpbmdCdWlsZGVyJiBi
dWlsZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgaW50IG9mZnNldCA9IG1fc3RyaW5nLmxlbmd0
aCgpIC0gbV9sZW5ndGg7Ci0KLSAgICAgICAgaWYgKCFvZmZzZXQpIHsKLSAgICAgICAgICAgIGlm
IChtX2xlbmd0aCkKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZyk7Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcuc3Vic3Ry
aW5nKG9mZnNldCwgbV9sZW5ndGgpKTsKLSAgICB9Ci0KLSAgICBVQ2hhciBnZXRDdXJyZW50Q2hh
cjgoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOFB0cjsKLSAgICB9Ci0K
LSAgICBVQ2hhciBnZXRDdXJyZW50Q2hhcjE2KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Rh
dGEuc3RyaW5nMTZQdHIgPyAqbV9kYXRhLnN0cmluZzE2UHRyIDogMDsKLSAgICB9Ci0KLSAgICBV
Q2hhciBpbmNyZW1lbnRBbmRHZXRDdXJyZW50Q2hhcjgoKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fZGF0YS5zdHJpbmc4UHRyKTsKLSAgICAgICAgcmV0dXJuICorK21fZGF0YS5zdHJpbmc4UHRy
OwotICAgIH0KLSAgICAKLSAgICBVQ2hhciBpbmNyZW1lbnRBbmRHZXRDdXJyZW50Q2hhcjE2KCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nMTZQdHIpOwotICAgICAgICByZXR1
cm4gKisrbV9kYXRhLnN0cmluZzE2UHRyOwotICAgIH0KLSAgICAKLSAgICBTdHJpbmcgY3VycmVu
dFN1YlN0cmluZyh1bnNpZ25lZCBsZW5ndGgpCi0gICAgewotICAgICAgICBpbnQgb2Zmc2V0ID0g
bV9zdHJpbmcubGVuZ3RoKCkgLSBtX2xlbmd0aDsKLSAgICAgICAgcmV0dXJuIG1fc3RyaW5nLnN1
YnN0cmluZyhvZmZzZXQsIGxlbmd0aCk7Ci0gICAgfQotCi0gICAgaW5saW5lIFVDaGFyIGdldEN1
cnJlbnRDaGFyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2xlbmd0aCk7Ci0gICAgICAgIGlm
IChpczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW50Q2hhcjgoKTsKLSAgICAg
ICAgcmV0dXJuIGdldEN1cnJlbnRDaGFyMTYoKTsKLSAgICB9Ci0gICAgCi0gICAgQUxXQVlTX0lO
TElORSBVQ2hhciBpbmNyZW1lbnRBbmRHZXRDdXJyZW50Q2hhcigpCi0gICAgewotICAgICAgICBB
U1NFUlQobV9sZW5ndGgpOwotICAgICAgICBpZiAoaXM4Qml0KCkpCi0gICAgICAgICAgICByZXR1
cm4gaW5jcmVtZW50QW5kR2V0Q3VycmVudENoYXI4KCk7Ci0gICAgICAgIHJldHVybiBpbmNyZW1l
bnRBbmRHZXRDdXJyZW50Q2hhcjE2KCk7CisgICAgICAgIGlmIChtX3N0cmluZy5jaGFyYWN0ZXJz
KCkgPT0gbV9jdXJyZW50KQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcobV9jdXJyZW50
LCBtX2xlbmd0aCkpOwogICAgIH0KIAogcHVibGljOgotICAgIHVuaW9uIHsKLSAgICAgICAgY29u
c3QgTENoYXIqIHN0cmluZzhQdHI7Ci0gICAgICAgIGNvbnN0IFVDaGFyKiBzdHJpbmcxNlB0cjsK
LSAgICB9IG1fZGF0YTsKICAgICBpbnQgbV9sZW5ndGg7CisgICAgY29uc3QgVUNoYXIqIG1fY3Vy
cmVudDsKIAogcHJpdmF0ZToKLSAgICBib29sIG1fZG9Ob3RFeGNsdWRlTGluZU51bWJlcnM7Ci0g
ICAgYm9vbCBtX2lzOEJpdDsKICAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgYm9vbCBtX2RvTm90
RXhjbHVkZUxpbmVOdW1iZXJzOwogfTsKIAogY2xhc3MgU2VnbWVudGVkU3RyaW5nIHsKQEAgLTE0
NSw5ICs4Miw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX251bWJlck9mQ2hhcmFjdGVyc0NvbnN1
bWVkUHJpb3JUb0N1cnJlbnRMaW5lKDApCiAgICAgICAgICwgbV9jdXJyZW50TGluZSgwKQogICAg
ICAgICAsIG1fY2xvc2VkKGZhbHNlKQotICAgICAgICAsIG1fZW1wdHkodHJ1ZSkKLSAgICAgICAg
LCBtX2FkdmFuY2VGdW5jKCZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VFbXB0eSkKLSAgICAgICAg
LCBtX2FkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyRnVuYygmU2VnbWVudGVkU3RyaW5nOjphZHZh
bmNlRW1wdHkpCiAgICAgewogICAgIH0KIApAQCAtMTU1LDE2ICs4OSwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIDogbV9wdXNoZWRDaGFyMSgwKQogICAgICAgICAsIG1fcHVzaGVkQ2hhcjIoMCkKICAg
ICAgICAgLCBtX2N1cnJlbnRTdHJpbmcoc3RyKQotICAgICAgICAsIG1fY3VycmVudENoYXIoMCkK
KyAgICAgICAgLCBtX2N1cnJlbnRDaGFyKG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQpCiAgICAg
ICAgICwgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3RyaW5nKDAp
CiAgICAgICAgICwgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGlu
ZSgwKQogICAgICAgICAsIG1fY3VycmVudExpbmUoMCkKICAgICAgICAgLCBtX2Nsb3NlZChmYWxz
ZSkKLSAgICAgICAgLCBtX2VtcHR5KCFzdHIubGVuZ3RoKCkpCiAgICAgewotICAgICAgICBpZiAo
bV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoKQotICAgICAgICAgICAgbV9jdXJyZW50Q2hhciA9IG1f
Y3VycmVudFN0cmluZy5nZXRDdXJyZW50Q2hhcigpOwotICAgICAgICB1cGRhdGVBZHZhbmNlRnVu
Y3Rpb25Qb2ludGVycygpOwogICAgIH0KIAogICAgIFNlZ21lbnRlZFN0cmluZyhjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmKTsKQEAgLTE4NCwxNSArMTE0LDE0IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIGlmICghbV9wdXNoZWRDaGFyMSkgewogICAgICAgICAgICAgbV9wdXNoZWRDaGFyMSA9IGM7
Ci0gICAgICAgICAgICBtX2N1cnJlbnRDaGFyID0gbV9wdXNoZWRDaGFyMSA/IG1fcHVzaGVkQ2hh
cjEgOiBtX2N1cnJlbnRTdHJpbmcuZ2V0Q3VycmVudENoYXIoKTsKLSAgICAgICAgICAgIHVwZGF0
ZVNsb3dDYXNlRnVuY3Rpb25Qb2ludGVycygpOworICAgICAgICAgICAgbV9jdXJyZW50Q2hhciA9
IG1fcHVzaGVkQ2hhcjEgPyAmbV9wdXNoZWRDaGFyMSA6IG1fY3VycmVudFN0cmluZy5tX2N1cnJl
bnQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoIW1fcHVzaGVkQ2hhcjIp
OwogICAgICAgICAgICAgbV9wdXNoZWRDaGFyMiA9IGM7CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2VtcHR5OyB9CisgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gIWN1cnJlbnQoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwogCiAgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xvc2VkOyB9
CkBAIC0yMDMsNDcgKzEzMiw2NiBAQCBwdWJsaWM6CiAgICAgICAgIE5vdEVub3VnaENoYXJhY3Rl
cnMsCiAgICAgfTsKIAotICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWQoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsgcmV0dXJuIGxvb2tBaGVhZElubGluZShzdHJpbmcsIHRydWUpOyB9Ci0gICAg
TG9va0FoZWFkUmVzdWx0IGxvb2tBaGVhZElnbm9yaW5nQ2FzZShjb25zdCBTdHJpbmcmIHN0cmlu
ZykgeyByZXR1cm4gbG9va0FoZWFkSW5saW5lKHN0cmluZywgZmFsc2UpOyB9Ci0KLSAgICBpbmxp
bmUgdm9pZCBhZHZhbmNlKCkKLSAgICB7Ci0gICAgICAgICh0aGlzLT4qbV9hZHZhbmNlRnVuYyko
KTsKLSAgICB9CisgICAgTG9va0FoZWFkUmVzdWx0IGxvb2tBaGVhZChjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gbG9va0FoZWFkSW5saW5lPFNlZ21lbnRlZFN0cmluZzo6ZXF1YWxzTGl0
ZXJhbGx5PihzdHJpbmcpOyB9CisgICAgTG9va0FoZWFkUmVzdWx0IGxvb2tBaGVhZElnbm9yaW5n
Q2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gbG9va0FoZWFkSW5saW5lPFNlZ21l
bnRlZFN0cmluZzo6ZXF1YWxzSWdub3JpbmdDYXNlPihzdHJpbmcpOyB9CiAKLSAgICBpbmxpbmUg
dm9pZCBhZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpCisgICAgdm9pZCBhZHZhbmNlKCkKICAg
ICB7Ci0gICAgICAgICh0aGlzLT4qbV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1bmMpKCk7
CisgICAgICAgIGlmICghbV9wdXNoZWRDaGFyMSAmJiBtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGgg
PiAxKSB7CisgICAgICAgICAgICAtLW1fY3VycmVudFN0cmluZy5tX2xlbmd0aDsKKyAgICAgICAg
ICAgIG1fY3VycmVudENoYXIgPSArK21fY3VycmVudFN0cmluZy5tX2N1cnJlbnQ7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYWR2YW5jZVNsb3dDYXNlKCk7CiAgICAg
fQogCiAgICAgdm9pZCBhZHZhbmNlQW5kQVNTRVJUKFVDaGFyIGV4cGVjdGVkQ2hhcmFjdGVyKQog
ICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChleHBlY3RlZENoYXJhY3RlciwgY3VycmVudENo
YXIoKSA9PSBleHBlY3RlZENoYXJhY3Rlcik7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoZXhwZWN0
ZWRDaGFyYWN0ZXIsICpjdXJyZW50KCkgPT0gZXhwZWN0ZWRDaGFyYWN0ZXIpOwogICAgICAgICBh
ZHZhbmNlKCk7CiAgICAgfQogCiAgICAgdm9pZCBhZHZhbmNlQW5kQVNTRVJUSWdub3JpbmdDYXNl
KFVDaGFyIGV4cGVjdGVkQ2hhcmFjdGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChl
eHBlY3RlZENoYXJhY3RlciwgV1RGOjpVbmljb2RlOjpmb2xkQ2FzZShjdXJyZW50Q2hhcigpKSA9
PSBXVEY6OlVuaWNvZGU6OmZvbGRDYXNlKGV4cGVjdGVkQ2hhcmFjdGVyKSk7CisgICAgICAgIEFT
U0VSVF9VTlVTRUQoZXhwZWN0ZWRDaGFyYWN0ZXIsIFdURjo6VW5pY29kZTo6Zm9sZENhc2UoKmN1
cnJlbnQoKSkgPT0gV1RGOjpVbmljb2RlOjpmb2xkQ2FzZShleHBlY3RlZENoYXJhY3RlcikpOwog
ICAgICAgICBhZHZhbmNlKCk7CiAgICAgfQogCisgICAgdm9pZCBhZHZhbmNlUGFzdE5ld2xpbmVB
bmRVcGRhdGVMaW5lTnVtYmVyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCgqY3VycmVudCgpID09
ICdcbicpOworICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgbV9jdXJyZW50U3RyaW5nLm1f
bGVuZ3RoID4gMSkgeworICAgICAgICAgICAgaW50IG5ld0xpbmVGbGFnID0gbV9jdXJyZW50U3Ry
aW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKCk7CisgICAgICAgICAgICBtX2N1cnJlbnRMaW5l
ICs9IG5ld0xpbmVGbGFnOworICAgICAgICAgICAgaWYgKG5ld0xpbmVGbGFnKQorICAgICAgICAg
ICAgICAgIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudExpbmUgPSBu
dW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpICsgMTsKKyAgICAgICAgICAgIC0tbV9jdXJyZW50
U3RyaW5nLm1fbGVuZ3RoOworICAgICAgICAgICAgbV9jdXJyZW50Q2hhciA9ICsrbV9jdXJyZW50
U3RyaW5nLm1fY3VycmVudDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBhZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlclNsb3dDYXNlKCk7CisgICAgfQorICAgIAogICAg
IHZvaWQgYWR2YW5jZVBhc3ROb25OZXdsaW5lKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChjdXJy
ZW50Q2hhcigpICE9ICdcbicpOwotICAgICAgICBhZHZhbmNlKCk7CisgICAgICAgIEFTU0VSVCgq
Y3VycmVudCgpICE9ICdcbicpOworICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgbV9jdXJy
ZW50U3RyaW5nLm1fbGVuZ3RoID4gMSkgeworICAgICAgICAgICAgLS1tX2N1cnJlbnRTdHJpbmcu
bV9sZW5ndGg7CisgICAgICAgICAgICBtX2N1cnJlbnRDaGFyID0gKyttX2N1cnJlbnRTdHJpbmcu
bV9jdXJyZW50OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFkdmFu
Y2VTbG93Q2FzZSgpOwogICAgIH0KLQotICAgIHZvaWQgYWR2YW5jZVBhc3ROZXdsaW5lQW5kVXBk
YXRlTGluZU51bWJlcigpCisgICAgCisgICAgdm9pZCBhZHZhbmNlQW5kVXBkYXRlTGluZU51bWJl
cigpCiAgICAgewotICAgICAgICBBU1NFUlQoY3VycmVudENoYXIoKSA9PSAnXG4nKTsKICAgICAg
ICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA+IDEpIHsK
LSAgICAgICAgICAgIGludCBuZXdMaW5lRmxhZyA9IG1fY3VycmVudFN0cmluZy5kb05vdEV4Y2x1
ZGVMaW5lTnVtYmVycygpOworICAgICAgICAgICAgaW50IG5ld0xpbmVGbGFnID0gKCptX2N1cnJl
bnRTdHJpbmcubV9jdXJyZW50ID09ICdcbicpICYgbV9jdXJyZW50U3RyaW5nLmRvTm90RXhjbHVk
ZUxpbmVOdW1iZXJzKCk7CiAgICAgICAgICAgICBtX2N1cnJlbnRMaW5lICs9IG5ld0xpbmVGbGFn
OwogICAgICAgICAgICAgaWYgKG5ld0xpbmVGbGFnKQogICAgICAgICAgICAgICAgIG1fbnVtYmVy
T2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudExpbmUgPSBudW1iZXJPZkNoYXJhY3Rl
cnNDb25zdW1lZCgpICsgMTsKLSAgICAgICAgICAgIGRlY3JlbWVudEFuZENoZWNrTGVuZ3RoKCk7
Ci0gICAgICAgICAgICBtX2N1cnJlbnRDaGFyID0gbV9jdXJyZW50U3RyaW5nLmluY3JlbWVudEFu
ZEdldEN1cnJlbnRDaGFyKCk7CisgICAgICAgICAgICAtLW1fY3VycmVudFN0cmluZy5tX2xlbmd0
aDsKKyAgICAgICAgICAgIG1fY3VycmVudENoYXIgPSArK21fY3VycmVudFN0cmluZy5tX2N1cnJl
bnQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgYWR2YW5jZUFuZFVw
ZGF0ZUxpbmVOdW1iZXJTbG93Q2FzZSgpOwpAQCAtMjY4LDcgKzIxNiw5IEBAIHB1YmxpYzoKIAog
ICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCi0gICAgVUNoYXIgY3VycmVudENoYXIoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRDaGFyOyB9ICAgIAorICAgIGNvbnN0IFVDaGFyJiBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiAqY3VycmVudCgpOyB9CisgICAgY29uc3QgVUNoYXIqIG9w
ZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBjdXJyZW50KCk7IH0KKyAgICAKIAogICAgIC8vIFRo
ZSBtZXRob2QgaXMgbW9kZXJhdGVseSBzbG93LCBjb21wYXJpbmcgdG8gY3VycmVudExpbmUgbWV0
aG9kLgogICAgIE9yZGluYWxOdW1iZXIgY3VycmVudENvbHVtbigpIGNvbnN0OwpAQCAtMjgxLDY4
ICsyMzEsMjcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdWJz
dHJpbmcmKTsKICAgICB2b2lkIHByZXBlbmQoY29uc3QgU2VnbWVudGVkU3Vic3RyaW5nJik7CiAK
LSAgICB2b2lkIGFkdmFuY2U4KCk7Ci0gICAgdm9pZCBhZHZhbmNlMTYoKTsKLSAgICB2b2lkIGFk
dmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyOCgpOwotICAgIHZvaWQgYWR2YW5jZUFuZFVwZGF0ZUxp
bmVOdW1iZXIxNigpOwogICAgIHZvaWQgYWR2YW5jZVNsb3dDYXNlKCk7CiAgICAgdm9pZCBhZHZh
bmNlQW5kVXBkYXRlTGluZU51bWJlclNsb3dDYXNlKCk7Ci0gICAgdm9pZCBhZHZhbmNlRW1wdHko
KTsKICAgICB2b2lkIGFkdmFuY2VTdWJzdHJpbmcoKTsKLSAgICAKLSAgICB2b2lkIHVwZGF0ZVNs
b3dDYXNlRnVuY3Rpb25Qb2ludGVycygpCi0gICAgewotICAgICAgICBtX2FkdmFuY2VGdW5jID0g
JlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVNsb3dDYXNlOwotICAgICAgICBtX2FkdmFuY2VBbmRV
cGRhdGVMaW5lTnVtYmVyRnVuYyA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VBbmRVcGRhdGVM
aW5lTnVtYmVyU2xvd0Nhc2U7Ci0gICAgfQorICAgIGNvbnN0IFVDaGFyKiBjdXJyZW50KCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50Q2hhcjsgfQogCi0gICAgdm9pZCBkZWNyZW1lbnRBbmRDaGVj
a0xlbmd0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9jdXJyZW50U3RyaW5nLm1fbGVuZ3Ro
ID4gMSk7Ci0gICAgICAgIGlmICgtLW1fY3VycmVudFN0cmluZy5tX2xlbmd0aCA9PSAxKQotICAg
ICAgICAgICAgdXBkYXRlU2xvd0Nhc2VGdW5jdGlvblBvaW50ZXJzKCk7Ci0gICAgfQorICAgIHN0
YXRpYyBib29sIGVxdWFsc0xpdGVyYWxseShjb25zdCBVQ2hhciogc3RyMSwgY29uc3QgVUNoYXIq
IHN0cjIsIHNpemVfdCBjb3VudCkgeyByZXR1cm4gIW1lbWNtcChzdHIxLCBzdHIyLCBjb3VudCAq
IHNpemVvZihVQ2hhcikpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWxzSWdub3JpbmdDYXNlKGNv
bnN0IFVDaGFyKiBzdHIxLCBjb25zdCBVQ2hhciogc3RyMiwgc2l6ZV90IGNvdW50KSB7IHJldHVy
biAhV1RGOjpVbmljb2RlOjp1bWVtY2FzZWNtcChzdHIxLCBzdHIyLCBjb3VudCk7IH0KIAotICAg
IHZvaWQgdXBkYXRlQWR2YW5jZUZ1bmN0aW9uUG9pbnRlcnMoKQotICAgIHsKLSAgICAgICAgaWYg
KChtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGggPiAxKSAmJiAhbV9wdXNoZWRDaGFyMSkgewotICAg
ICAgICAgICAgaWYgKG1fY3VycmVudFN0cmluZy5pczhCaXQoKSkgewotICAgICAgICAgICAgICAg
IG1fYWR2YW5jZUZ1bmMgPSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlODsKLSAgICAgICAgICAg
ICAgICBpZiAobV9jdXJyZW50U3RyaW5nLmRvTm90RXhjbHVkZUxpbmVOdW1iZXJzKCkpCi0gICAg
ICAgICAgICAgICAgICAgIG1fYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXJGdW5jID0gJlNlZ21l
bnRlZFN0cmluZzo6YWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXI4OwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlckZ1
bmMgPSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlODsKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1fYWR2YW5jZUZ1bmMgPSAmU2VnbWVudGVk
U3RyaW5nOjphZHZhbmNlMTY7Ci0gICAgICAgICAgICBpZiAobV9jdXJyZW50U3RyaW5nLmRvTm90
RXhjbHVkZUxpbmVOdW1iZXJzKCkpCi0gICAgICAgICAgICAgICAgbV9hZHZhbmNlQW5kVXBkYXRl
TGluZU51bWJlckZ1bmMgPSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlQW5kVXBkYXRlTGluZU51
bWJlcjE2OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fYWR2YW5jZUFuZFVw
ZGF0ZUxpbmVOdW1iZXJGdW5jID0gJlNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZTE2OwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFtX2N1cnJlbnRTdHJpbmcu
bV9sZW5ndGggJiYgIWlzQ29tcG9zaXRlKCkpIHsKLSAgICAgICAgICAgIG1fYWR2YW5jZUZ1bmMg
PSAmU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlRW1wdHk7Ci0gICAgICAgICAgICBtX2FkdmFuY2VB
bmRVcGRhdGVMaW5lTnVtYmVyRnVuYyA9ICZTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VFbXB0eTsK
LSAgICAgICAgfQotCi0gICAgICAgIHVwZGF0ZVNsb3dDYXNlRnVuY3Rpb25Qb2ludGVycygpOwot
ICAgIH0KLQotICAgIGlubGluZSBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkSW5saW5lKGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBib29sIGNhc2VTZW5zaXRpdmUpCisgICAgdGVtcGxhdGU8Ym9vbCBl
cXVhbHMoY29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0IFVDaGFyKiBzdHIyLCBzaXplX3QgY291bnQp
PgorICAgIGlubGluZSBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkSW5saW5lKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5s
ZW5ndGgoKSA8PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9jdXJyZW50U3RyaW5nLm1fbGVuZ3Ro
KSkgewotICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRTdWJzdHJpbmcgPSBtX2N1cnJlbnRTdHJp
bmcuY3VycmVudFN1YlN0cmluZyhzdHJpbmcubGVuZ3RoKCkpOwotICAgICAgICAgICAgaWYgKGN1
cnJlbnRTdWJzdHJpbmcuc3RhcnRzV2l0aChzdHJpbmcsIGNhc2VTZW5zaXRpdmUpKQorICAgICAg
ICAgICAgaWYgKGVxdWFscyhzdHJpbmcuY2hhcmFjdGVycygpLCBtX2N1cnJlbnRTdHJpbmcubV9j
dXJyZW50LCBzdHJpbmcubGVuZ3RoKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBEaWRNYXRj
aDsKICAgICAgICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gbG9va0FoZWFkU2xvd0Nhc2Uoc3RyaW5nLCBjYXNlU2Vuc2l0aXZlKTsKKyAgICAgICAg
cmV0dXJuIGxvb2tBaGVhZFNsb3dDYXNlPGVxdWFscz4oc3RyaW5nKTsKICAgICB9Ci0gICAgCi0g
ICAgTG9va0FoZWFkUmVzdWx0IGxvb2tBaGVhZFNsb3dDYXNlKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBib29sIGNhc2VTZW5zaXRpdmUpCisKKyAgICB0ZW1wbGF0ZTxib29sIGVxdWFscyhjb25zdCBV
Q2hhciogc3RyMSwgY29uc3QgVUNoYXIqIHN0cjIsIHNpemVfdCBjb3VudCk+CisgICAgTG9va0Fo
ZWFkUmVzdWx0IGxvb2tBaGVhZFNsb3dDYXNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsK
ICAgICAgICAgdW5zaWduZWQgY291bnQgPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAgICAgIGlmIChj
b3VudCA+IGxlbmd0aCgpKQpAQCAtMzUxLDcgKzI2MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFN0
cmluZyBjb25zdW1lZFN0cmluZyA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChjb3VudCwg
Y29uc3VtZWRDaGFyYWN0ZXJzKTsKICAgICAgICAgYWR2YW5jZShjb3VudCwgY29uc3VtZWRDaGFy
YWN0ZXJzKTsKICAgICAgICAgTG9va0FoZWFkUmVzdWx0IHJlc3VsdCA9IERpZE5vdE1hdGNoOwot
ICAgICAgICBpZiAoY29uc3VtZWRTdHJpbmcuc3RhcnRzV2l0aChzdHJpbmcsIGNhc2VTZW5zaXRp
dmUpKQorICAgICAgICBpZiAoZXF1YWxzKHN0cmluZy5jaGFyYWN0ZXJzKCksIGNvbnN1bWVkQ2hh
cmFjdGVycywgY291bnQpKQogICAgICAgICAgICAgcmVzdWx0ID0gRGlkTWF0Y2g7CiAgICAgICAg
IHByZXBlbmQoU2VnbWVudGVkU3RyaW5nKGNvbnN1bWVkU3RyaW5nKSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CkBAIC0zNjIsMTUgKzI3MSwxMiBAQCBwcml2YXRlOgogICAgIFVDaGFyIG1fcHVz
aGVkQ2hhcjE7CiAgICAgVUNoYXIgbV9wdXNoZWRDaGFyMjsKICAgICBTZWdtZW50ZWRTdWJzdHJp
bmcgbV9jdXJyZW50U3RyaW5nOwotICAgIFVDaGFyIG1fY3VycmVudENoYXI7CisgICAgY29uc3Qg
VUNoYXIqIG1fY3VycmVudENoYXI7CiAgICAgaW50IG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3Vt
ZWRQcmlvclRvQ3VycmVudFN0cmluZzsKICAgICBpbnQgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZFByaW9yVG9DdXJyZW50TGluZTsKICAgICBpbnQgbV9jdXJyZW50TGluZTsKICAgICBEZXF1
ZTxTZWdtZW50ZWRTdWJzdHJpbmc+IG1fc3Vic3RyaW5nczsKICAgICBib29sIG1fY2xvc2VkOwot
ICAgIGJvb2wgbV9lbXB0eTsKLSAgICB2b2lkIChTZWdtZW50ZWRTdHJpbmc6OiptX2FkdmFuY2VG
dW5jKSgpOwotICAgIHZvaWQgKFNlZ21lbnRlZFN0cmluZzo6Km1fYWR2YW5jZUFuZFVwZGF0ZUxp
bmVOdW1iZXJGdW5jKSgpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVNZXRob2RzLmggYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZU1ldGhvZHMu
aAppbmRleCA5MmRmNjM2MWNjZDYwOGU0YmY5OGQwNTI4N2QzMGE1NmVjNjIzYzAzLi5kODNjZWNi
NmVjMjc2YjhjOTVhMWNjODY4NzM1ZmE2MWNlNThiZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZU1ldGhvZHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklu
bGluZU1ldGhvZHMuaApAQCAtNjgsNyArNjgsNyBAQCBib29sIGNvbnN1bWVDaGFyYWN0ZXJSZWZl
cmVuY2UoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFN0cmluZ0J1aWxkZXImIGRlY29kZWRDaAog
ICAgIFN0cmluZ0J1aWxkZXIgY29uc3VtZWRDaGFyYWN0ZXJzOwogICAgIAogICAgIHdoaWxlICgh
c291cmNlLmlzRW1wdHkoKSkgewotICAgICAgICBVQ2hhciBjYyA9IHNvdXJjZS5jdXJyZW50Q2hh
cigpOworICAgICAgICBVQ2hhciBjYyA9ICpzb3VyY2U7CiAgICAgICAgIHN3aXRjaCAoZW50aXR5
U3RhdGUpIHsKICAgICAgICAgY2FzZSBJbml0aWFsOiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0g
J1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnIHx8IGNj
ID09ICc8JyB8fCBjYyA9PSAnJicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL01hcmt1cFRva2VuaXplckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFy
a3VwVG9rZW5pemVyQmFzZS5oCmluZGV4IDkzYTBlZDU4MGU3MmQwODc5Nzk2ZTg0Y2UwNmU5OWZi
NDM4ZWQxMzAuLjBhM2NhZGFmZmExOTc4YjI0M2FkYjcxZTM1YTdhYzA5OWRmMmQyMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5pemVyQmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5pemVyQmFzZS5oCkBAIC02
Niw3ICs2Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
QUxXQVlTX0lOTElORSBVQ2hhciBuZXh0SW5wdXRDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVybiBt
X25leHRJbnB1dENoYXJhY3RlcjsgfQorICAgICAgICBVQ2hhciBuZXh0SW5wdXRDaGFyYWN0ZXIo
KSBjb25zdCB7IHJldHVybiBtX25leHRJbnB1dENoYXJhY3RlcjsgfQogCiAgICAgICAgIC8vIFJl
dHVybnMgd2hldGhlciB3ZSBzdWNjZWVkZWQgaW4gcGVla2luZyBhdCB0aGUgbmV4dCBjaGFyYWN0
ZXIuCiAgICAgICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4gZmFpbCB0byBwZWVrIGlzIGlmIHRo
ZXJlIGFyZSBubyBtb3JlCkBAIC03NCw3ICs3NCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgQUxX
QVlTX0lOTElORSBib29sIHBlZWsoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgICAgIHsK
ICAgICAgICAgUGVla0FnYWluOgotICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSBz
b3VyY2UuY3VycmVudENoYXIoKTsKKyAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0g
KnNvdXJjZTsKIAogICAgICAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24g
aXMgZXhwZW5zaXZlLCBzbyB3ZSBoYXZlIGEKICAgICAgICAgICAgIC8vIGZhc3QtcmVqZWN0IGJy
YW5jaCBmb3IgY2hhcmFjdGVycyB0aGF0IGRvbid0IHJlcXVpcmUgc3BlY2lhbApAQCAtOTEsNyAr
OTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0TmV3
bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
ICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7CisgICAgICAg
ICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAqc291cmNlOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdccicpIHsKICAgICAgICAg
ICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdcbic7CkBAIC0xMTYsNyArMTE2LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICB9CiAKICAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJl
IGFyZSBtb3JlIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgotICAgICAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKKyAg
ICAgICAgYm9vbCBhZHZhbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQogICAgICAgICB7CiAg
ICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKICAgICAgICAg
ICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQo=
</data>
<flag name="commit-queue"
          id="163591"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>