<?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>59958</bug_id>
          
          <creation_ts>2011-05-02 13:44:56 -0700</creation_ts>
          <short_desc>REGRESSION(r85483): Causes media test failures. (Requested by eric_carlson on #webkit).</short_desc>
          <delta_ts>2011-05-02 14:04:58 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>43673</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>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>396616</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-02 13:44:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/85483 broke the build:
Causes media test failures. (Requested by eric_carlson 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>396617</commentid>
    <comment_count>1</comment_count>
      <attachid>91972</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-02 13:45:15 -0700</bug_when>
    <thetext>Created attachment 91972
ROLLOUT of r85483

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396642</commentid>
    <comment_count>2</comment_count>
      <attachid>91972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-02 14:04:54 -0700</bug_when>
    <thetext>Comment on attachment 91972
ROLLOUT of r85483

Clearing flags on attachment: 91972

Committed r85518: &lt;http://trac.webkit.org/changeset/85518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396643</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-02 14:04:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91972</attachid>
            <date>2011-05-02 13:45:15 -0700</date>
            <delta_ts>2011-05-02 14:04:54 -0700</delta_ts>
            <desc>ROLLOUT of r85483</desc>
            <filename>bug-59958-20110502204132.patch</filename>
            <type>text/plain</type>
            <size>38471</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU1MTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NTA3ODcxOWFjOWY5OTk4
MjhmMzBjMjQ3MTcwZDU0ZmMxYjZiYzFlLi5jNmFiYmFhZjMwMzU4YzEzMTQyMjE4NTRlM2E4ZWRl
OTJkY2MxODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDUtMDIgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI4NTQ4My4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvODU0ODMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU5OTU4CisKKyAgICAgICAgQ2F1c2VzIG1lZGlhIHRlc3QgZmFpbHVyZXMuIChSZXF1
ZXN0ZWQgYnkgZXJpY19jYXJsc29uIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cHJlcGFyZUZvckxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5
U3RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXN1bWVMb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZXBhcmVUb1BsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmR1cmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vl
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnVwZGF0ZVN0YXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZXRhZGF0YUxvYWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRlZFRpbWVSYW5nZXND
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6dGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpzZWVrQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFByZWxvYWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0xheWVySXNSZWFkeVRvRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVB
VlBsYXllckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckZvckNhY2hlUmVzb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWVySXRlbVN0YXR1cyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUR1cmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmFzc2V0U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2l6ZUNoYW5nZWQpOgorCiAyMDExLTA1
LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCAyMzY4YjY1N2Y0OGM0MjI3YThhYjg0OWY1MTZlMjZiMDFiNGE1MGVjLi5mZTgyOTc2NTQ0
N2FkYTJhODE3YjgzYzM1OGNjNjExMTIwODllYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTE3MSw3ICsxNzEsNiBAQCBIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bQogICAgICwgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudChmYWxzZSkKICAgICAsIG1fbG9h
ZEluaXRpYXRlZEJ5VXNlckdlc3R1cmUoZmFsc2UpCiAgICAgLCBtX2NvbXBsZXRlbHlMb2FkZWQo
ZmFsc2UpCi0gICAgLCBtX2hhdmVQcmVwYXJlZFRvUGxheShmYWxzZSkKIHsKICAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50Iik7CiAgICAgZG9jdW1lbnQt
PnJlZ2lzdGVyRm9yRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMpOwpAQCAtNTE4LDcg
KzUxNyw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIG1f
c2VudFN0YWxsZWRFdmVudCA9IGZhbHNlOwogICAgIG1faGF2ZUZpcmVkTG9hZGVkRGF0YSA9IGZh
bHNlOwogICAgIG1fY29tcGxldGVseUxvYWRlZCA9IGZhbHNlOwotICAgIG1faGF2ZVByZXBhcmVk
VG9QbGF5ID0gZmFsc2U7CiAgICAgbV9kaXNwbGF5TW9kZSA9IFVua25vd247CiAKICAgICAvLyAx
IC0gQWJvcnQgYW55IGFscmVhZHktcnVubmluZyBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobSBmb3IgdGhpcyBlbGVtZW50LgpAQCAtMTA4NCwxNSArMTA4Miw3IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTYXZlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+c3VwcG9ydHNTYXZlKCkgOiBmYWxzZTsKIH0KLQotdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlVG9QbGF5KCkKLXsKLSAgICBpZiAobV9oYXZlUHJl
cGFyZWRUb1BsYXkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVQcmVwYXJlZFRvUGxheSA9
IHRydWU7Ci0gICAgbV9wbGF5ZXItPnByZXBhcmVUb1BsYXkoKTsKLX0KLQorICAgIAogdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWsoJWYpIiwgdGltZSk7CkBAIC0x
MTA1LDEwICsxMDk1LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGZsb2F0IHRpbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSWYg
dGhlIG1lZGlhIGVuZ2luZSBoYXMgYmVlbiB0b2xkIHRvIHBvc3Rwb25lIGxvYWRpbmcgZGF0YSwg
bGV0IGl0IGdvIGFoZWFkIG5vdy4KLSAgICBpZiAobV9wcmVsb2FkIDwgTWVkaWFQbGF5ZXI6OkF1
dG8gJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKLSAgICAgICAgcHJlcGFyZVRv
UGxheSgpOwotCiAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHRpbWUgYmVmb3JlIHNldHRpbmcgbV9z
ZWVraW5nLCBtX2xhc3RTZWVrVGltZSBpcyByZXR1cm5lZCBvbmNlIGl0IGlzIHNldC4KICAgICBy
ZWZyZXNoQ2FjaGVkVGltZSgpOwogICAgIGZsb2F0IG5vdyA9IGN1cnJlbnRUaW1lKCk7CkBAIC0y
MjEwLDcgKzIxOTYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZSgp
CiAgICAgICAgICAgICBhZGRQbGF5ZWRSYW5nZShtX2xhc3RTZWVrVGltZSwgdGltZSk7CiAKICAg
ICAgICAgaWYgKGNvdWxkUGxheUlmRW5vdWdoRGF0YSgpKQotICAgICAgICAgICAgcHJlcGFyZVRv
UGxheSgpOworICAgICAgICAgICAgbV9wbGF5ZXItPnByZXBhcmVUb1BsYXkoKTsKIAogICAgICAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpKQogICAgICAgICAgICAgbWVkaWFDb250cm9scygpLT5w
bGF5YmFja1N0b3BwZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggN2QzZDg4NzEwNTFhOTdhNjNkYzVlMTljNzA2NTQ4ODU5YWQ5N2U4Ni4uNjA0Y2RmODQwOWE1
ZTA1NTAxM2UzODcyMmFkMDUwNjFhNGVkOTEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTI4Niw3ICsyODYsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFF
bmdpbmVFcnJvcihQYXNzUmVmUHRyPE1lZGlhRXJyb3I+IGVycik7CiAgICAgdm9pZCBjYW5jZWxQ
ZW5kaW5nRXZlbnRzQW5kQ2FsbGJhY2tzKCk7CiAgICAgdm9pZCB3YWl0Rm9yU291cmNlQ2hhbmdl
KCk7Ci0gICAgdm9pZCBwcmVwYXJlVG9QbGF5KCk7CiAKICAgICBlbnVtIEludmFsaWRTb3VyY2VB
Y3Rpb24geyBEb05vdGhpbmcsIENvbXBsYWluIH07CiAgICAgYm9vbCBpc1NhZmVUb0xvYWRVUkwo
Y29uc3QgS1VSTCYsIEludmFsaWRTb3VyY2VBY3Rpb24pOwpAQCAtNDE4LDcgKzQxNyw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50IDogMTsKICAgICBib29s
IG1fbG9hZEluaXRpYXRlZEJ5VXNlckdlc3R1cmUgOiAxOwogICAgIGJvb2wgbV9jb21wbGV0ZWx5
TG9hZGVkIDogMTsKLSAgICBib29sIG1faGF2ZVByZXBhcmVkVG9QbGF5IDogMTsKIH07CiAKIH0g
Ly9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYzk4OGFkNjZkNDQ2MzBkODFiZDIzOWI4MzA4YzVmYTEz
OWQ5ZDRjZi4uMDk2ZWJiMjA3MmE3ZTJhMDAxMzYwNzhlYmQ1ZjkyYTM0YWIyZTc2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaCIKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCi0jaW5jbHVkZSAi
QXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAg
LTQ2LDI1ICs0NSwzMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBjb25zdCBmbG9hdCBpbnZhbGlkVGltZSA9IC0xLjBmOworCiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihN
ZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9xdWV1
ZWROb3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVNdXRleCgpCisgICAgLCBtX21haW5UaHJl
YWRDYWxsUGVuZGluZyhmYWxzZSkKICAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpF
bXB0eSkKICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiAgICAg
LCBtX3ByZWxvYWQoTWVkaWFQbGF5ZXI6OkF1dG8pCiAgICAgLCBtX3NjYWxlRmFjdG9yKDEsIDEp
CiAgICAgLCBtX2NhY2hlZE1heFRpbWVMb2FkZWQoMCkKICAgICAsIG1fY2FjaGVkTWF4VGltZVNl
ZWthYmxlKDApCi0gICAgLCBtX2NhY2hlZER1cmF0aW9uKGludmFsaWRUaW1lKCkpCi0gICAgLCBt
X3JlcG9ydGVkRHVyYXRpb24oaW52YWxpZFRpbWUoKSkKLSAgICAsIG1fc2Vla1RvKGludmFsaWRU
aW1lKCkpCisgICAgLCBtX2NhY2hlZER1cmF0aW9uKGludmFsaWRUaW1lKQorICAgICwgbV9yZXBv
cnRlZER1cmF0aW9uKGludmFsaWRUaW1lKQorICAgICwgbV9zZWVrVG8oaW52YWxpZFRpbWUpCiAg
ICAgLCBtX3JlcXVlc3RlZFJhdGUoMSkKLSAgICAsIG1fZGVsYXlDYWxsYmFja3MoMCkKLSAgICAs
IG1fbWFpblRocmVhZENhbGxQZW5kaW5nKGZhbHNlKQorICAgICwgbV9kZWxheUNhbGxiYWNrcyhm
YWxzZSkKKyAgICAsIG1faGF2ZVByZXBhcmVkVG9QbGF5KGZhbHNlKQogICAgICwgbV9hc3NldElz
UGxheWFibGUoZmFsc2UpCiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCisgICAgLCBtX3ZpZGVvRnJh
bWVIYXNEcmF3bihmYWxzZSkKICAgICAsIG1fbG9hZGluZ01ldGFkYXRhKGZhbHNlKQorICAgICwg
bV9kZWxheWluZ0xvYWQoZmFsc2UpCiAgICAgLCBtX2lzQWxsb3dlZFRvUmVuZGVyKGZhbHNlKQog
ICAgICwgbV9jYWNoZWRIYXNBdWRpbyhmYWxzZSkKICAgICAsIG1fY2FjaGVkSGFzVmlkZW8oZmFs
c2UpCkBAIC0xNjMsNiArMTY3LDE3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKCkgY29uc3QKICAgICByZXR1cm4gaGFzTGF5ZXJS
ZW5kZXJlcigpIHx8IGhhc0NvbnRleHRSZW5kZXJlcigpOwogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzdW1lTG9hZCgpCit7CisgICAgTE9HKE1lZGlhLCAiTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXN1bWVMb2FkKCVwKSIsIHRoaXMpOworCisg
ICAgQVNTRVJUKG1fZGVsYXlpbmdMb2FkKTsKKyAgICBtX2RlbGF5aW5nTG9hZCA9IGZhbHNlOwor
CisgICAgaWYgKG1fYXNzZXRVUkwubGVuZ3RoKCkpCisgICAgICAgIHByZXBhcmVUb1BsYXkoKTsK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWQoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpsb2FkKCVwKSIsIHRoaXMpOwpAQCAtMTc2LDEzICsxOTEsMjAgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgICAg
IG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwogICAgIH0KIAorICAgIG1fdmlkZW9GcmFt
ZUhhc0RyYXduID0gZmFsc2U7CiAgICAgbV9hc3NldFVSTCA9IHVybDsKIAogICAgIC8vIERvbid0
IGRvIGFueSBtb3JlIHdvcmsgaWYgdGhlIHVybCBpcyBlbXB0eS4KICAgICBpZiAoIXVybC5sZW5n
dGgoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0UHJlbG9hZChtX3ByZWxvYWQpOworICAg
IGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKKyAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpsb2FkKCVwKSAtIHByZWxvYWQ9PW5v
bmUgc28gcmV0dXJuaW5nIiwgdGhpcyk7CisgICAgICAgIG1fZGVsYXlpbmdMb2FkID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHByZXBhcmVUb1BsYXkoKTsKIH0KIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBsYXlhYmlsaXR5S25vd24oKQpAQCAt
MjEwLDcgKzIzMiwyMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJl
cGFyZVRvUGxheSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpwcmVwYXJlVG9QbGF5KCVwKSIsIHRoaXMpOwogCi0gICAgc2V0UHJlbG9hZChNZWRp
YVBsYXllcjo6QXV0byk7CisgICAgbV9wcmVsb2FkID0gTWVkaWFQbGF5ZXI6OkF1dG87CisgICAg
aWYgKG1faGF2ZVByZXBhcmVkVG9QbGF5KQorICAgICAgICByZXR1cm47CisgICAgbV9oYXZlUHJl
cGFyZWRUb1BsYXkgPSB0cnVlOworCisgICAgbV9kZWxheWluZ0xvYWQgPSBmYWxzZTsKKyNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIEZyYW1lKiBmcmFtZSA9IG1fcGxh
eWVyLT5mcmFtZVZpZXcoKSA/IG1fcGxheWVyLT5mcmFtZVZpZXcoKS0+ZnJhbWUoKSA6IDA7Cisg
ICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGNhY2hlSG9zdCA9IGZyYW1lID8gZnJhbWUtPmxvYWRl
cigpLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpIDogMDsKKyAgICBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlID0gMDsKKyAgICBpZiAoY2FjaGVIb3N0
ICYmIGNhY2hlSG9zdC0+c2hvdWxkTG9hZFJlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoUmVz
b3VyY2VSZXF1ZXN0KG1fYXNzZXRVUkwpLCByZXNvdXJjZSkgJiYgcmVzb3VyY2UpCisgICAgICAg
IGNyZWF0ZUFWUGxheWVyRm9yQ2FjaGVSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgZWxzZQorI2Vu
ZGlmICAgIAorICAgIGNyZWF0ZUFWUGxheWVyRm9yVVJMKG1fYXNzZXRVUkwpOworICAgIGNoZWNr
UGxheWFiaWxpdHkoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnBsYXkoKQpAQCAtMjMyLDIwICsyNjksMjIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnBhdXNlKCkKICAgICBwbGF0Zm9ybVBhdXNlKCk7CiB9CiAKLWZsb2F0IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZHVyYXRpb24oKSBjb25zdAordm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IElu
dFJlY3QmKQogewotICAgIGlmIChtX2NhY2hlZER1cmF0aW9uICE9IGludmFsaWRUaW1lKCkpCi0g
ICAgICAgIHJldHVybiBtX2NhY2hlZER1cmF0aW9uOworICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ug
Y2xhc3MsIG9ubHkgbmVlZCB0byByZW1lbWJlciB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gZHJhd24u
CisgICAgbV92aWRlb0ZyYW1lSGFzRHJhd24gPSB0cnVlOworfQogCitmbG9hdCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246OmR1cmF0aW9uKCkgY29uc3QKK3sKICAgICBpZiAoIW1ldGFE
YXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgZmxvYXQgZHVyYXRpb24g
PSBwbGF0Zm9ybUR1cmF0aW9uKCk7Ci0gICAgaWYgKCFkdXJhdGlvbiB8fCBkdXJhdGlvbiA9PSBp
bnZhbGlkVGltZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobV9jYWNoZWREdXJhdGlv
biA9PSBpbnZhbGlkVGltZSkgeworICAgICAgICBtX2NhY2hlZER1cmF0aW9uID0gcGxhdGZvcm1E
dXJhdGlvbigpOworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZNYWM6
OmR1cmF0aW9uKCVwKSAtIGNhY2hpbmcgJWYiLCB0aGlzLCBtX2NhY2hlZER1cmF0aW9uKTsKKyAg
ICB9CiAKLSAgICBtX2NhY2hlZER1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlQVZGTWFjOjpkdXJhdGlvbiglcCkgLSBjYWNoaW5nICVmIiwgdGhp
cywgbV9jYWNoZWREdXJhdGlvbik7CiAgICAgcmV0dXJuIG1fY2FjaGVkRHVyYXRpb247CiB9CiAK
QEAgLTI4Nyw3ICszMjYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
c2Vla2luZygpIGNvbnN0CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gbV9zZWVrVG8gIT0gaW52YWxpZFRpbWUoKTsKKyAg
ICByZXR1cm4gbV9zZWVrVG8gIT0gaW52YWxpZFRpbWU7CiB9CiAKIEludFNpemUgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CkBAIC0zOTMsMjggKzQz
MiwyNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVz
KCkKICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGluZzsKICAgICBl
bHNlIHsKICAgICAgICAgLy8gLWxvYWRWYWx1ZXNBc3luY2hyb25vdXNseUZvcktleXM6Y29tcGxl
dGlvbkhhbmRsZXI6IGhhcyBpbnZva2VkIGl0cyBoYW5kbGVyOyB0ZXN0IHN0YXR1cyBvZiBrZXlz
IGFuZCBkZXRlcm1pbmUgc3RhdGUuCi0gICAgICAgIEFzc2V0U3RhdHVzIGF2QXNzZXRTdGF0dXMg
PSBhc3NldFN0YXR1cygpOworICAgICAgICBBVkFzc2V0U3RhdHVzIGF2QXNzZXRTdGF0dXMgPSBh
c3NldFN0YXR1cygpOwogICAgICAgICBJdGVtU3RhdHVzIGl0ZW1TdGF0dXMgPSBwbGF5ZXJJdGVt
U3RhdHVzKCk7CiAgICAgICAgIAogICAgICAgICBtX2Fzc2V0SXNQbGF5YWJsZSA9IChhdkFzc2V0
U3RhdHVzID09IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1BsYXlhYmxlKTsKICAgICAgICAgaWYg
KG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpIYXZlTWV0YWRhdGEgJiYgYXZBc3NldFN0YXR1
cyA+IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c0xvYWRpbmcpIHsKICAgICAgICAgICAgIGlmICht
X2Fzc2V0SXNQbGF5YWJsZSkgewotICAgICAgICAgICAgICAgIGlmIChpdGVtU3RhdHVzIDw9IE1l
ZGlhUGxheWVyQVZQbGF5ZXJJdGVtU3RhdHVzVW5rbm93bikgeworICAgICAgICAgICAgICAgIGlm
IChpdGVtU3RhdHVzID09IE1lZGlhUGxheWVyQVZQbGF5ZXJJdGVtU3RhdHVzVW5rbm93bikgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoYXZBc3NldFN0YXR1cyA9PSBNZWRpYVBsYXllckFWQXNz
ZXRTdGF0dXNGYWlsZWQgfHwgbV9wcmVsb2FkID4gTWVkaWFQbGF5ZXI6Ok1ldGFEYXRhKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSBhIHBsYXlhYmxlIGFzc2V0IHRo
YXQgZG9lc24ndCBzdXBwb3J0IGluc3BlY3Rpb24gcHJpb3IgdG8gcGxheWJhY2s7IGdvIGFoZWFk
IAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGNyZWF0ZSB0aGUgQVZQbGF5ZXJJdGVt
IG5vdy4gV2hlbiB0aGUgQVZQbGF5ZXJJdGVtIGJlY29tZXMgcmVhZHkgdG8gcGxheSwgd2Ugd2ls
bCAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYWNjZXNzIHRvIGl0cyBtZXRhZGF0
YS4gT3Igd2UgbWF5IGhhdmUgYmVlbiBhc2tlZCB0byBiZWNvbWUgcmVhZHkgdG8gcGxheSBpbW1l
ZGlhdGVseS4KICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQ
bGF5ZXI6OkxvYWRpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlVG9QbGF5KCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAv
LyBUaGUgYXNzZXQgaXMgcGxheWFibGUsIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGxvYWQgbWVkaWEg
ZGF0YSB5ZXQgc28gZG9uJ3QgYWxsb2NhdGUKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo
ZSBwbGF5ZXIgaXRlbS4gRXZlbiB0aG91Z2ggd2UgZG9uJ3Qgd2FudCB0byBwbGF5IHlldCwgYWxs
b2NhdGUgYSBwbGF5ZXIgc28KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBjcmVh
dGUgYSBsYXllciBhcyBzb29uIGFzIHBvc3NpYmxlLgotICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlQVZQbGF5ZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpJZGxlOwotICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1fcmVh
ZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTWV0YWRhdGE7CisgICAgICAgICAgICAgICAgaWYg
KGF2QXNzZXRTdGF0dXMgPT0gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGVkKQorICAgICAg
ICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZU1ldGFkYXRhOwog
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBGSVggTUU6IGZldGNoIHRo
ZSBlcnJvciBhc3NvY2lhdGVkIHdpdGggdGhlIEAicGxheWFibGUiIGtleSB0byBkaXN0aW5ndWlz
aCBiZXR3ZWVuIGZvcm1hdCAKICAgICAgICAgICAgICAgICAvLyBhbmQgbmV0d29yayBlcnJvcnMu
CkBAIC00MjgsNyArNDYzLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBmbG9h
dCBtYXhMb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChp
dGVtU3RhdHVzKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNZWRpYVBsYXllckFWUGxheWVySXRl
bVN0YXR1c0RvZXNOb3RFeGlzdDoKICAgICAgICAgICAgICAgICBjYXNlIE1lZGlhUGxheWVyQVZQ
bGF5ZXJJdGVtU3RhdHVzVW5rbm93bjoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgY2FzZSBNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c0ZhaWxlZDoKQEAg
LTQzNywxMSArNDcxLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVw
ZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICAgICAgY2FzZSBNZWRpYVBsYXllckFWUGxheWVySXRl
bVN0YXR1c1BsYXliYWNrTGlrZWx5VG9LZWVwVXA6CiAgICAgICAgICAgICAgICAgICAgIG1fcmVh
ZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlRW5vdWdoRGF0YTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICBjYXNlIE1lZGlhUGxheWVyQVZQbGF5ZXJJdGVt
U3RhdHVzUGxheWJhY2tCdWZmZXJGdWxsOgotICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtT
dGF0ZSA9IE1lZGlhUGxheWVyOjpJZGxlOwotCiAgICAgICAgICAgICAgICAgY2FzZSBNZWRpYVBs
YXllckFWUGxheWVySXRlbVN0YXR1c1JlYWR5VG9QbGF5OgorICAgICAgICAgICAgICAgIGNhc2Ug
TWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1TdGF0dXNQbGF5YmFja0J1ZmZlckZ1bGw6CiAgICAgICAg
ICAgICAgICAgICAgIC8vIElmIHRoZSByZWFkeVN0YXRlIGlzIGFscmVhZHkgSGF2ZUVub3VnaERh
dGEsIGRvbid0IGdvIGxvd2VyIGJlY2F1c2Ugb2YgdGhpcyBzdGF0ZSBjaGFuZ2UuCiAgICAgICAg
ICAgICAgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hE
YXRhKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC00NTQsNyArNDg1LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcygpCiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgIGlmIChpdGVtU3RhdHVzICE9IE1lZGlhUGxheWVyQVZQbGF5ZXJJdGVtU3RhdHVzUGxheWJh
Y2tCdWZmZXJGdWxsICYmIGl0ZW1TdGF0dXMgPj0gTWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1TdGF0
dXNSZWFkeVRvUGxheSkKKyAgICAgICAgICAgICAgICBpZiAoaXRlbVN0YXR1cyA+PSBNZWRpYVBs
YXllckFWUGxheWVySXRlbVN0YXR1c1JlYWR5VG9QbGF5KQogICAgICAgICAgICAgICAgICAgICBt
X25ldHdvcmtTdGF0ZSA9IChtYXhMb2FkZWQgPT0gZHVyYXRpb24oKSkgPyBNZWRpYVBsYXllcjo6
TG9hZGVkIDogTWVkaWFQbGF5ZXI6OkxvYWRpbmc7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTQ2NCw4ICs0OTUsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
dXBkYXRlU3RhdGVzKCkKICAgICAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogCiAgICAgaWYg
KCFtX2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZSAmJiBtX2NhY2hlZEhhc1ZpZGVvICYmIGhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoKSkgewotICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVk
aWFQbGF5ZXI6OkhhdmVDdXJyZW50RGF0YSkKLSAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1l
ZGlhUGxheWVyOjpIYXZlQ3VycmVudERhdGE7CiAgICAgICAgIG1faGF2ZVJlcG9ydGVkRmlyc3RW
aWRlb0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSgpOwogICAgIH0KQEAgLTUwMSw2ICs1MzAsMTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQogICAgIHBsYXRmb3JtU2V0
VmlzaWJsZSh2aXNpYmxlKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdAoreworICAgIGlmIChjdXJyZW50UmVu
ZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICAgICAgcmV0dXJuIHZp
ZGVvTGF5ZXJJc1JlYWR5VG9EaXNwbGF5KCk7CisKKyAgICAvLyBXaGVuIHVzaW5nIHRoZSBzb2Z0
d2FyZSByZW5kZXJlciB3ZSBob3BlIHNvbWVvbmUgd2lsbCBzaWduYWwgdGhhdCBhIGZyYW1lIGlz
IGF2YWlsYWJsZSBzbyB3ZSBtaWdodCBhcyB3ZWxsCisgICAgLy8gd2FpdCB1bnRpbCB3ZSBrbm93
IHRoYXQgYSBmcmFtZSBoYXMgYmVlbiBkcmF3bi4KKyAgICByZXR1cm4gbV92aWRlb0ZyYW1lSGFz
RHJhd247Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjphY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiB7CiAgICAgLy8gU2V0IHVwIG9yIGNoYW5nZSB0
aGUgcmVuZGVyaW5nIHBhdGggaWYgbmVjZXNzYXJ5LgpAQCAtNTEwLDcgKzU0OSw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRl
Q2hhbmdlZCgpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWV0YWRhdGFM
b2FkZWQoKQogewogICAgIG1fbG9hZGluZ01ldGFkYXRhID0gZmFsc2U7Ci0gICAgdHJhY2tzQ2hh
bmdlZCgpOwogICAgIHVwZGF0ZVN0YXRlcygpOwogfQogCkBAIC01MzcsNyArNTc1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2Vk
KCkKICAgICAvLyBzbyByZXBvcnQgZHVyYXRpb24gY2hhbmdlZCB3aGVuIHRoZSBlc3RpbWF0ZSBp
cyB1cGF0ZWQuCiAgICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsKICAgICBpZiAoZHVyICE9IG1f
cmVwb3J0ZWREdXJhdGlvbikgewotICAgICAgICBpZiAobV9yZXBvcnRlZER1cmF0aW9uICE9IGlu
dmFsaWRUaW1lKCkpCisgICAgICAgIGlmIChtX3JlcG9ydGVkRHVyYXRpb24gIT0gaW52YWxpZFRp
bWUpCiAgICAgICAgICAgICBtX3BsYXllci0+ZHVyYXRpb25DaGFuZ2VkKCk7CiAgICAgICAgIG1f
cmVwb3J0ZWREdXJhdGlvbiA9IGR1cjsKICAgICB9CkBAIC01NTIsNyArNTkwLDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnRpbWVDaGFuZ2VkKGRvdWJsZSB0aW1lKQog
ewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGltZUNo
YW5nZWQoJXApIC0gdGltZSA9ICVmIiwgdGhpcywgdGltZSk7CiAKLSAgICBpZiAobV9zZWVrVG8g
PT0gaW52YWxpZFRpbWUoKSkKKyAgICBpZiAobV9zZWVrVG8gPT0gaW52YWxpZFRpbWUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIEFWRm91bmRhdGlvbiBtYXkgY2FsbCBvdXIgb2JzZXJ2ZXIg
bW9yZSB0aGFuIG9uY2UgZHVyaW5nIGEgc2VlaywgYW5kIHdlIGNhbid0IGN1cnJlbnRseSB0ZWxs
CkBAIC01NjIsNyArNjAwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnRpbWVDaGFuZ2VkKGRvdWJsZSB0aW1lKQogCiAgICAgZmxvYXQgY3VycmVudFJhdGUgPSByYXRl
KCk7CiAgICAgaWYgKChjdXJyZW50UmF0ZSA+IDAgJiYgdGltZSA+PSBtX3NlZWtUbykgfHwgKGN1
cnJlbnRSYXRlIDwgMCAmJiB0aW1lIDw9IG1fc2Vla1RvKSB8fCAoYWJzKG1fc2Vla1RvIC0gdGlt
ZSkgPD0gc21hbGxTZWVrRGVsdGEpKSB7Ci0gICAgICAgIG1fc2Vla1RvID0gaW52YWxpZFRpbWUo
KTsKKyAgICAgICAgbV9zZWVrVG8gPSBpbnZhbGlkVGltZTsKICAgICAgICAgdXBkYXRlU3RhdGVz
KCk7CiAgICAgICAgIG1fcGxheWVyLT50aW1lQ2hhbmdlZCgpOwogICAgIH0KQEAgLTU3Myw3ICs2
MTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRl
ZChib29sIGZpbmlzaGVkKQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCglcCkgLSBmaW5pc2hlZCA9ICVkIiwgdGhpcywgZmluaXNo
ZWQpOwogICAgIAogICAgIGlmIChmaW5pc2hlZCkKLSAgICAgICAgbV9zZWVrVG8gPSBpbnZhbGlk
VGltZSgpOworICAgICAgICBtX3NlZWtUbyA9IGludmFsaWRUaW1lOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlkRW5kKCkKQEAgLTU5MCw2ICs2MjgsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlkRW5kKCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJlcGFpbnQoKQogeworICAgIG1fdmlkZW9GcmFt
ZUhhc0RyYXduID0gdHJ1ZTsKICAgICBtX3BsYXllci0+cmVwYWludCgpOwogfQogCkBAIC02MDcs
MzAgKzY0Niw4IEBAIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6bW92aWVMb2FkVHlwZSgpIGNvbnN0CiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2Fk
KQogewogICAgIG1fcHJlbG9hZCA9IHByZWxvYWQ7Ci0gICAgaWYgKCFtX2Fzc2V0VVJMLmxlbmd0
aCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9wcmVsb2FkID49IE1lZGlhUGxheWVy
OjpNZXRhRGF0YSAmJiBhc3NldFN0YXR1cygpID09IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c0Rv
ZXNOb3RFeGlzdCkgewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0gICAg
ICAgIEZyYW1lKiBmcmFtZSA9IG1fcGxheWVyLT5mcmFtZVZpZXcoKSA/IG1fcGxheWVyLT5mcmFt
ZVZpZXcoKS0+ZnJhbWUoKSA6IDA7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBjYWNo
ZUhvc3QgPSBmcmFtZSA/IGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGlj
YXRpb25DYWNoZUhvc3QoKSA6IDA7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSog
cmVzb3VyY2U7Ci0gICAgICAgIGlmIChjYWNoZUhvc3QgJiYgY2FjaGVIb3N0LT5zaG91bGRMb2Fk
UmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShSZXNvdXJjZVJlcXVlc3QobV9hc3NldFVSTCks
IHJlc291cmNlKSAmJiByZXNvdXJjZSkgewotICAgICAgICAgICAgLy8gQVZGb3VuZGF0aW9uIGNh
bid0IG9wZW4gYXJiaXRyYXJ5IGRhdGEgcG9pbnRlcnMsIHNvIGlmIHRoaXMgQXBwbGljYXRpb25D
YWNoZVJlc291cmNlIGRvZXNuJ3QgCi0gICAgICAgICAgICAvLyBoYXZlIGEgdmFsaWQgbG9jYWwg
cGF0aCwganVzdCBvcGVuIHRoZSByZXNvdXJjZSdzIG9yaWdpbmFsIFVSTC4KLSAgICAgICAgICAg
IGlmIChyZXNvdXJjZS0+cGF0aCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBjcmVhdGVB
VkFzc2V0Rm9yVVJMKHJlc291cmNlLT51cmwoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgY3JlYXRlQVZBc3NldEZvckNhY2hlUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAg
ICB9IGVsc2UKLSNlbmRpZiAgICAKLSAgICAgICAgICAgIGNyZWF0ZUFWQXNzZXRGb3JVUkwobV9h
c3NldFVSTCk7Ci0KLSAgICAgICAgY2hlY2tQbGF5YWJpbGl0eSgpOwotICAgIH0KLQotICAgIGlm
IChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6OkF1dG8gJiYgcGxheWVySXRlbVN0YXR1cygpID09
IE1lZGlhUGxheWVyQVZQbGF5ZXJJdGVtU3RhdHVzRG9lc05vdEV4aXN0KQotICAgICAgICBjcmVh
dGVBVlBsYXllckl0ZW0oKTsKKyAgICBpZiAobV9kZWxheWluZ0xvYWQgJiYgbV9wcmVsb2FkICE9
IE1lZGlhUGxheWVyOjpOb25lKQorICAgICAgICByZXN1bWVMb2FkKCk7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCmluZGV4IDRhNTg3YjJkZWUyMTNiNDlhMjg2YTFmOWFjODI1M2EzYzZiMjUyOWEuLjIyNWY2
Y2ZhYzJhZjUyZjZiZGZlNTE0M2Y2YjljZmViN2M4NDJjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE0Miw5ICsxNDIs
MTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJik7Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBs
YXllcjo6UHJlbG9hZCk7CisgICAgdmlydHVhbCBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUo
KSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgPSAwOwpAQCAt
MTU4LDE1ICsxNTksMTIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1
bGxzY3JlZW4oKSBjb25zdDsKIAogICAgIC8vIFJlcXVpcmVkIGludGVyZmFjZXMgZm9yIGNvbmNy
ZXRlIGRlcml2ZWQgY2xhc3Nlcy4KLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVS
TChjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVyKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllckl0ZW0oKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVyRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKSA9IDA7CiAj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlQVZBc3NldEZvckNhY2hlUmVzb3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlKikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllckZvckNhY2hlUmVzb3VyY2UoQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlKikgPSAwOwogI2VuZGlmCiAKICAgICBlbnVtIEl0ZW1TdGF0dXMg
ewotICAgICAgICBNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c0RvZXNOb3RFeGlzdCwKICAg
ICAgICAgTWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1TdGF0dXNVbmtub3duLAogICAgICAgICBNZWRp
YVBsYXllckFWUGxheWVySXRlbVN0YXR1c0ZhaWxlZCwKICAgICAgICAgTWVkaWFQbGF5ZXJBVlBs
YXllckl0ZW1TdGF0dXNSZWFkeVRvUGxheSwKQEAgLTE3Niw4ICsxNzQsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgfTsKICAgICB2aXJ0dWFsIEl0ZW1TdGF0dXMgcGxheWVySXRlbVN0YXR1cygpIGNvbnN0
ID0gMDsKIAotICAgIGVudW0gQXNzZXRTdGF0dXMgewotICAgICAgICBNZWRpYVBsYXllckFWQXNz
ZXRTdGF0dXNEb2VzTm90RXhpc3QsCisgICAgZW51bSBBVkFzc2V0U3RhdHVzIHsKICAgICAgICAg
TWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzVW5rbm93biwKICAgICAgICAgTWVkaWFQbGF5ZXJBVkFz
c2V0U3RhdHVzTG9hZGluZywKICAgICAgICAgTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzRmFpbGVk
LApAQCAtMTg1LDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgTWVkaWFQbGF5ZXJBVkFz
c2V0U3RhdHVzTG9hZGVkLAogICAgICAgICBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNQbGF5YWJs
ZSwKICAgICB9OwotICAgIHZpcnR1YWwgQXNzZXRTdGF0dXMgYXNzZXRTdGF0dXMoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBBVkFzc2V0U3RhdHVzIGFzc2V0U3RhdHVzKCkgY29uc3QgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtU2V0VmlzaWJsZShib29sKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBsYXRmb3JtUGxheSgpID0gMDsKQEAgLTIwOSwxMyArMjA2LDEzIEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVWaWRlb0xheWVyKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkZXN0cm95VmlkZW9MYXllcigpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCB2aWRl
b0xheWVySXNSZWFkeVRvRGlzcGxheSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBo
YXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc0xheWVy
UmVuZGVyZXIoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIHJlc3VtZUxvYWQo
KTsKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgdm9pZCBzZXRIYXNWaWRlbyhib29s
IGIpIHsgbV9jYWNoZWRIYXNWaWRlbyA9IGI7IH07CkBAIC0yMzksMTQgKzIzNiwxNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKCkgY29uc3Q7CiAKICAgICBz
dGF0aWMgdm9pZCBtYWluVGhyZWFkQ2FsbGJhY2sodm9pZCopOwotICAgIAotICAgIGZsb2F0IGlu
dmFsaWRUaW1lKCkgY29uc3QgeyByZXR1cm4gLTEuMGY7IH0KIAogcHJpdmF0ZToKKwogICAgIE1l
ZGlhUGxheWVyKiBtX3BsYXllcjsKIAogICAgIFZlY3RvcjxOb3RpZmljYXRpb24+IG1fcXVldWVk
Tm90aWZpY2F0aW9uczsKICAgICBNdXRleCBtX3F1ZXVlTXV0ZXg7CisgICAgYm9vbCBtX21haW5U
aHJlYWRDYWxsUGVuZGluZzsKIAogICAgIG11dGFibGUgUmVmUHRyPFRpbWVSYW5nZXM+IG1fY2Fj
aGVkTG9hZGVkVGltZVJhbmdlczsKIApAQCAtMjY2LDEwICsyNjMsMTIgQEAgcHJpdmF0ZToKICAg
ICBmbG9hdCBtX3NlZWtUbzsKICAgICBmbG9hdCBtX3JlcXVlc3RlZFJhdGU7CiAgICAgaW50IG1f
ZGVsYXlDYWxsYmFja3M7Ci0gICAgYm9vbCBtX21haW5UaHJlYWRDYWxsUGVuZGluZzsKKyAgICBi
b29sIG1faGF2ZVByZXBhcmVkVG9QbGF5OwogICAgIGJvb2wgbV9hc3NldElzUGxheWFibGU7CiAg
ICAgYm9vbCBtX3Zpc2libGU7CisgICAgYm9vbCBtX3ZpZGVvRnJhbWVIYXNEcmF3bjsKICAgICBi
b29sIG1fbG9hZGluZ01ldGFkYXRhOworICAgIGJvb2wgbV9kZWxheWluZ0xvYWQ7CiAgICAgYm9v
bCBtX2lzQWxsb3dlZFRvUmVuZGVyOwogICAgIGJvb2wgbV9jYWNoZWRIYXNBdWRpbzsKICAgICBi
b29sIG1fY2FjaGVkSGFzVmlkZW87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA3OGE5YmM0YmFhOGExYmVjODdi
MWJmMTBhMTZlNDI3MmM0ZGRhNzIwLi5jZWJlMmJjZDZiMTdkZDA4MjNlM2VmZTU1OGQ2ZDJmNzVi
NDg1MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTg2LDEzICs4NiwxMiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0KSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllcigpOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBs
YXllckl0ZW0oKTsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBT
dHJpbmcmIHVybCk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVyRm9yVVJMKGNvbnN0
IFN0cmluZyYgdXJsKTsKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yQ2FjaGVSZXNvdXJjZShBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZQbGF5ZXJGb3JDYWNoZVJl
c291cmNlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSopOwogI2VuZGlmCiAgICAgdmlydHVhbCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Okl0ZW1TdGF0dXMgcGxheWVySXRlbVN0YXR1
cygpIGNvbnN0OwotICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpB
c3NldFN0YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0OworICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpBVkFzc2V0U3RhdHVzIGFzc2V0U3RhdHVzKCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQbGF5YWJpbGl0eSgpOwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVSYXRlKCk7CkBAIC0xMDYsMTMgKzEwNSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpOwogICAgIHZpcnR1YWwgdm9pZCBzaXplQ2hhbmdl
ZCgpOwogCi0gICAgdmlydHVhbCBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdDsK
LQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpOwogICAgIHZp
cnR1YWwgdm9pZCBkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVWaWRlb0xheWVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lWaWRlb0xh
eWVyKCk7CisgICAgdmlydHVhbCBib29sIHZpZGVvTGF5ZXJJc1JlYWR5VG9EaXNwbGF5KCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVyZXIoKSBjb25zdDsKQEAgLTEyNyw3ICsxMjUsNiBA
QCBwcml2YXRlOgogICAgIFJldGFpblB0cjxXZWJDb3JlQVZGTW92aWVPYnNlcnZlcj4gbV9vYmpj
T2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRJbWFnZUdlbmVyYXRvcj4gbV9pbWFnZUdl
bmVyYXRvcjsKICAgICBpZCBtX3RpbWVPYnNlcnZlcjsKLSAgICBib29sIG1fdmlkZW9GcmFtZUhh
c0RyYXduOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA2MGIyOTQ4ZmYwNmQ1NWVlMWJlNmYw
ODNiMWM2MDVjY2M5YmI4NzE3Li41NDI1NjBhOTcyNjFiMGY1Yzc1ZGEyYWUwNmQzZTUzY2UwNjZh
ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTM4LDcgKzEzOCw2IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVk
aWFQbGF5CiAgICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQogICAg
ICwgbV9vYmpjT2JzZXJ2ZXIoQWRvcHROUywgW1tXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBhbGxv
Y10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkKICAgICAsIG1fdGltZU9ic2VydmVyKDApCi0gICAg
LCBtX3ZpZGVvRnJhbWVIYXNEcmF3bihmYWxzZSkKIHsKIH0KIApAQCAtMjM1LDc3ICsyMzQsNzEg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95VmlkZW9M
YXllcigpCiAgICAgbV92aWRlb0xheWVyID0gMDsKIH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKK2Jvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9MYXllcklzUmVhZHlUb0Rp
c3BsYXkoKSBjb25zdAogewotICAgIHJldHVybiAobV92aWRlb0ZyYW1lSGFzRHJhd24gfHwgKG1f
dmlkZW9MYXllciAmJiBbbV92aWRlb0xheWVyLmdldCgpIGlzUmVhZHlGb3JEaXNwbGF5XSkpOwor
ICAgIHJldHVybiAobV92aWRlb0xheWVyICYmIFttX3ZpZGVvTGF5ZXIuZ2V0KCkgaXNSZWFkeUZv
ckRpc3BsYXldKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckZvclVSTChjb25zdCBTdHJp
bmcmIHVybCkKIHsKLSAgICBpZiAobV9hdkFzc2V0KQotICAgICAgICByZXR1cm47Ci0KICAgICBz
ZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBOU1VSTCAqY29jb2FVUkwgPSBLVVJMKFBhcnNl
ZFVSTFN0cmluZywgdXJsKTsKLSAgICBtX2F2QXNzZXQuYWRvcHROUyhbW0FWVVJMQXNzZXQgYWxs
b2NdIGluaXRXaXRoVVJMOmNvY29hVVJMIG9wdGlvbnM6bmlsXSk7Ci0gICAgc2V0RGVsYXlDYWxs
YmFja3MoZmFsc2UpOworCisgICAgaWYgKCFtX2F2QXNzZXQpIHsKKyAgICAgICAgTlNVUkwgKmNv
Y29hVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7CisgICAgICAgIG1fYXZBc3NldC5h
ZG9wdE5TKFtbQVZVUkxBc3NldCBhbGxvY10gaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0aW9uczpu
aWxdKTsKKyAgICB9CisgICAgCisgICAgY3JlYXRlQVZQbGF5ZXIoKTsKIH0KIAogI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JDYWNoZVJlc291cmNlKEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZSogcmVzb3VyY2UpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUFWUGxheWVyRm9yQ2FjaGVSZXNvdXJjZShBcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2UqIHJlc291cmNlKQogewotICAgIGlmIChtX2F2QXNzZXQpCisgICAgLy8gQVZGb3VuZGF0
aW9uIGNhbid0IG9wZW4gYXJiaXRyYXJ5IGRhdGEgcG9pbnRlcnMsIHNvIGlmIHRoaXMgQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlIGRvZXNuJ3QgCisgICAgLy8gaGF2ZSBhIHZhbGlkIGxvY2FsIHBh
dGgsIGp1c3Qgb3BlbiB0aGUgcmVzb3VyY2UncyBvcmlnaW5hbCBVUkwuCisgICAgaWYgKHJlc291
cmNlLT5wYXRoKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGNyZWF0ZUFWUGxheWVyRm9yVVJMKHJl
c291cmNlLT51cmwoKSk7CiAgICAgICAgIHJldHVybjsKLQotICAgIC8vIEFWRm91bmRhdGlvbiBj
YW4ndCBvcGVuIGFyYml0cmFyeSBkYXRhIHBvaW50ZXJzLgotICAgIEFTU0VSVCghcmVzb3VyY2Ut
PnBhdGgoKS5pc0VtcHR5KCkpOworICAgIH0KICAgICAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0
cnVlKTsKIAotICAgIE5TVVJMKiBsb2NhbFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cmVz
b3VyY2UtPnBhdGgoKV07Ci0gICAgbV9hdkFzc2V0LmFkb3B0TlMoW1tBVlVSTEFzc2V0IGFsbG9j
XSBpbml0V2l0aFVSTDpsb2NhbFVSTCBvcHRpb25zOm5pbF0pOworICAgIGlmICghbV9hdkFzc2V0
KSB7CisgICAgICAgIE5TVVJMKiBsb2NhbFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cmVz
b3VyY2UtPnBhdGgoKV07CisgICAgICAgIG1fYXZBc3NldC5hZG9wdE5TKFtbQVZVUkxBc3NldCBh
bGxvY10gaW5pdFdpdGhVUkw6bG9jYWxVUkwgb3B0aW9uczpuaWxdKTsKKyAgICB9CiAKLSAgICBz
ZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CisgICAgY3JlYXRlQVZQbGF5ZXIoKTsKIH0KICNlbmRp
ZgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxh
eWVyKCkKIHsKLSAgICBpZiAobV9hdlBsYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2V0
RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0KLSAgICBtX2F2UGxheWVyLmFkb3B0TlMoW1tBVlBsYXll
ciBhbGxvY10gaW5pdF0pOwotICAgIFttX2F2UGxheWVyLmdldCgpIGFkZE9ic2VydmVyOm1fb2Jq
Y09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJyYXRlIiBvcHRpb25zOm5pbCBjb250ZXh0Oih2
b2lkICopTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHRQbGF5ZXJdOwot
ICAgIAotICAgIC8vIEFkZCBhIHRpbWUgb2JzZXJ2ZXIsIGFzayB0byBiZSBjYWxsZWQgaW5mcmVx
dWVudGx5IGJlY2F1c2Ugd2UgZG9uJ3QgcmVhbGx5IHdhbnQgcGVyaW9kaWMgY2FsbGJhY2tzIGJ1
dAotICAgIC8vIG91ciBvYnNlcnZlciB3aWxsIGFsc28gYmUgY2FsbGVkIHdoZW5ldmVyIGEgc2Vl
ayBoYXBwZW5zLgotICAgIGNvbnN0IGRvdWJsZSB2ZXJ5TG9uZ0ludGVydmFsID0gNjAqNjAqNjAq
MjQqMzA7Ci0gICAgV2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgKm9ic2VydmVyID0gbV9vYmpjT2Jz
ZXJ2ZXIuZ2V0KCk7Ci0gICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllci5nZXQoKSBhZGRQ
ZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh2ZXJ5
TG9uZ0ludGVydmFsLCAxMCkgcXVldWU6bmlsIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSl7Ci0g
ICAgICAgIFtvYnNlcnZlciB0aW1lQ2hhbmdlZDpDTVRpbWVHZXRTZWNvbmRzKHRpbWUpXTsKLSAg
ICB9XTsKLQotICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKLX0KLQotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQotewotICAg
IGlmIChtX2F2UGxheWVySXRlbSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2V0RGVsYXlDYWxs
YmFja3ModHJ1ZSk7CisgICAgaWYgKCFtX2F2UGxheWVyKSB7CisgICAgICAgIG1fYXZQbGF5ZXIu
YWRvcHROUyhbW0FWUGxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgIAorICAgICAgICBbbV9h
dlBsYXllci5nZXQoKSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRo
OkAicmF0ZSIgb3B0aW9uczpuaWwgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0
aW9uT2JzZXJ2YXRpb25Db250ZXh0UGxheWVyXTsKKyAgICAgICAgCisgICAgICAgIC8vIEFkZCBh
IHRpbWUgb2JzZXJ2ZXIsIGFzayB0byBiZSBjYWxsZWQgaW5mcmVxdWVudGx5IGJlY2F1c2Ugd2Ug
ZG9uJ3QgcmVhbGx5IHdhbnQgcGVyaW9kaWMgY2FsbGJhY2tzIGJ1dAorICAgICAgICAvLyBvdXIg
b2JzZXJ2ZXIgd2lsbCBhbHNvIGJlIGNhbGxlZCB3aGVuZXZlciBhIHNlZWsgaGFwcGVucy4KKyAg
ICAgICAgY29uc3QgZG91YmxlIHZlcnlMb25nSW50ZXJ2YWwgPSA2MCo2MCo2MCoyNCozMDsKKyAg
ICAgICAgV2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgKm9ic2VydmVyID0gbV9vYmpjT2JzZXJ2ZXIu
Z2V0KCk7CisgICAgICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIuZ2V0KCkgYWRkUGVy
aW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlV2l0aFNlY29uZHModmVyeUxv
bmdJbnRlcnZhbCwgMTApIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpeworICAg
ICAgICAgICAgW29ic2VydmVyIHRpbWVDaGFuZ2VkOkNNVGltZUdldFNlY29uZHModGltZSldOwor
ICAgICAgICB9XTsKKyAgICB9CiAKLSAgICAvLyBDcmVhdGUgdGhlIHBsYXllciBpdGVtIHNvIHdl
IGNhbiBtZWRpYSBkYXRhLiAKLSAgICBtX2F2UGxheWVySXRlbS5hZG9wdE5TKFtbQVZQbGF5ZXJJ
dGVtIGFsbG9jXSBpbml0V2l0aEFzc2V0Om1fYXZBc3NldC5nZXQoKV0pOwotICAgIAotICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6bV9vYmpjT2Jz
ZXJ2ZXIuZ2V0KClzZWxlY3RvcjpAc2VsZWN0b3IoZGlkRW5kOikgbmFtZTpBVlBsYXllckl0ZW1E
aWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uIG9iamVjdDptX2F2UGxheWVySXRlbS5nZXQoKV07
CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkgeworICAgICAgICAvLyBDcmVhdGUgdGhlIHBsYXll
ciBpdGVtIHNvIHdlIGNhbiBtZWRpYSBkYXRhLiAKKyAgICAgICAgbV9hdlBsYXllckl0ZW0uYWRv
cHROUyhbW0FWUGxheWVySXRlbSBhbGxvY10gaW5pdFdpdGhBc3NldDptX2F2QXNzZXQuZ2V0KCld
KTsKKyAgICAgICAgCisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KClzZWxlY3RvcjpAc2VsZWN0b3IoZGlk
RW5kOikgbmFtZTpBVlBsYXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uIG9iamVj
dDptX2F2UGxheWVySXRlbS5nZXQoKV07CiAKLSAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGlu
IGl0ZW1LVk9Qcm9wZXJ0aWVzKCkpCi0gICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBhZGRP
YnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWUgb3B0aW9uczpu
aWwgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250
ZXh0UGxheWVySXRlbV07CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gaXRlbUtW
T1Byb3BlcnRpZXMoKSkKKyAgICAgICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBhZGRPYnNl
cnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWUgb3B0aW9uczpuaWwg
Y29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0
UGxheWVySXRlbV07CiAKLSAgICBbbV9hdlBsYXllci5nZXQoKSByZXBsYWNlQ3VycmVudEl0ZW1X
aXRoUGxheWVySXRlbTptX2F2UGxheWVySXRlbS5nZXQoKV07CisgICAgICAgIFttX2F2UGxheWVy
LmdldCgpIHJlcGxhY2VDdXJyZW50SXRlbVdpdGhQbGF5ZXJJdGVtOm1fYXZQbGF5ZXJJdGVtLmdl
dCgpXTsKKyAgICB9CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CkBAIC0zMjEs
NyArMzE0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjaGVj
a1BsYXlhYmlsaXR5KCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpiZWdpbkxvYWRpbmdNZXRhZGF0YSgpCiB7Ci0gICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEoJXApIC0gcmVxdWVz
dGluZyBtZXRhZGF0YSBsb2FkaW5nIiwgdGhpcyk7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWFiaWxpdHlLbm93biglcCkgLSByZXF1ZXN0
aW5nIG1ldGFkYXRhIGxvYWRpbmciLCB0aGlzKTsKICAgICBbbV9hdkFzc2V0LmdldCgpIGxvYWRW
YWx1ZXNBc3luY2hyb25vdXNseUZvcktleXM6W2Fzc2V0TWV0YWRhdGFLZXlOYW1lcygpIHJldGFp
bl0gY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW21fb2JqY09ic2VydmVyLmdldCgpIG1l
dGFkYXRhTG9hZGVkXTsKICAgICB9XTsKQEAgLTMzMCw3ICszMjMsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmJlZ2luTG9hZGluZ01ldGFkYXRhKCkKIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRlbVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF5ZXJJdGVtU3RhdHVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1f
YXZQbGF5ZXJJdGVtKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c0RvZXNOb3RFeGlzdDsKKyAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJBVlBsYXll
ckl0ZW1TdGF0dXNVbmtub3duOwogCiAgICAgQVZQbGF5ZXJJdGVtU3RhdHVzIHN0YXR1cyA9IFtt
X2F2UGxheWVySXRlbS5nZXQoKSBzdGF0dXNdOwogICAgIGlmIChzdGF0dXMgPT0gQVZQbGF5ZXJJ
dGVtU3RhdHVzVW5rbm93bikKQEAgLTMzOSw5ICszMzIsOSBAQCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Okl0ZW1TdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cAogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRp
YVBsYXllckFWUGxheWVySXRlbVN0YXR1c0ZhaWxlZDsKICAgICBpZiAoW21fYXZQbGF5ZXJJdGVt
LmdldCgpIGlzUGxheWJhY2tMaWtlbHlUb0tlZXBVcF0pCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyQVZQbGF5ZXJJdGVtU3RhdHVzUGxh
eWJhY2tMaWtlbHlUb0tlZXBVcDsKLSAgICBpZiAoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGlzUGxh
eWJhY2tCdWZmZXJGdWxsXSkKKyAgICBpZiAoYnVmZmVyZWQoKS0+Y29udGFpbihkdXJhdGlvbigp
KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQ
bGF5ZXJBVlBsYXllckl0ZW1TdGF0dXNQbGF5YmFja0J1ZmZlckZ1bGw7Ci0gICAgaWYgKFttX2F2
UGxheWVySXRlbS5nZXQoKSBpc1BsYXliYWNrQnVmZmVyRW1wdHldKQorICAgIGlmIChidWZmZXJl
ZCgpLT5jb250YWluKGN1cnJlbnRUaW1lKCkpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c1BsYXliYWNr
QnVmZmVyRW1wdHk7CiAKICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1c1JlYWR5VG9QbGF5OwpAQCAtMzkyLDI1ICsz
ODUsMjEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9y
bVBhdXNlKCkKIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxh
dGZvcm1EdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQot
ICAgICAgICByZXR1cm4gaW52YWxpZFRpbWUoKTsKLSAgICAKLSAgICBDTVRpbWUgY21EdXJhdGlv
bjsKKyAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgIW1fYXZQbGF5ZXJJdGVtKQorICAg
ICAgICByZXR1cm4gMDsKICAgICAKLSAgICAvLyBDaGVjayB0aGUgYXZpdGVtIGlmIHdlIGhhdmUg
b25lLCBzb21lIGFzc2V0cyBuZXZlciByZXBvcnQgZHVyYXRpb24uCi0gICAgaWYgKG1fYXZQbGF5
ZXJJdGVtKQotICAgICAgICBjbUR1cmF0aW9uID0gW21fYXZQbGF5ZXJJdGVtLmdldCgpIGR1cmF0
aW9uXTsKLSAgICBlbHNlCi0gICAgICAgIGNtRHVyYXRpb249IFttX2F2QXNzZXQuZ2V0KCkgZHVy
YXRpb25dOwotCisgICAgZmxvYXQgZHVyYXRpb247CisgICAgQ01UaW1lIGNtRHVyYXRpb24gPSBb
bV9hdlBsYXllckl0ZW0uZ2V0KCkgZHVyYXRpb25dOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJ
QyhjbUR1cmF0aW9uKSkKLSAgICAgICAgcmV0dXJuIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoQ01U
aW1lR2V0U2Vjb25kcyhjbUR1cmF0aW9uKSk7Ci0KLSAgICBpZiAoQ01USU1FX0lTX0lOREVGSU5J
VEUoY21EdXJhdGlvbikpCi0gICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxmbG9hdD46Omlu
ZmluaXR5KCk7CisgICAgICAgIGR1cmF0aW9uID0gbmFycm93UHJlY2lzaW9uVG9GbG9hdChDTVRp
bWVHZXRTZWNvbmRzKGNtRHVyYXRpb24pKTsKKyAgICBlbHNlIGlmIChDTVRJTUVfSVNfSU5ERUZJ
TklURShjbUR1cmF0aW9uKSkKKyAgICAgICAgZHVyYXRpb24gPSBudW1lcmljX2xpbWl0czxmbG9h
dD46OmluZmluaXR5KCk7CisgICAgZWxzZSB7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmR1cmF0aW9uKCVwKSAtIGludmFsaWQgZHVyYXRp
b24sIHJldHVybmluZyAwIiwgdGhpcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAotICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmR1cmF0aW9u
KCVwKSAtIGludmFsaWQgZHVyYXRpb24sIHJldHVybmluZyAtMSIsIHRoaXMpOwotICAgIHJldHVy
biBpbnZhbGlkVGltZSgpOworICAgIHJldHVybiBkdXJhdGlvbjsKIH0KIAogZmxvYXQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3VycmVudFRpbWUoKSBjb25zdApAQCAtNTQ2
LDEwICs1MzUsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
ZXRBc3NldChpZCBhc3NldCkKICAgICBtX2F2QXNzZXQgPSBhc3NldDsKIH0KIAotTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjphc3NldFN0YXR1cygpIGNvbnN0CitNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OkFWQXNzZXRTdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6YXNzZXRTdGF0dXMoKSBjb25zdAogewogICAgIGlmICghbV9hdkFzc2V0KQotICAgICAgICBy
ZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzRG9lc05vdEV4aXN0OworICAgICAgICByZXR1
cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzVW5rbm93bjsKIAogICAgIGZvciAoTlNTdHJpbmcg
KmtleU5hbWUgaW4gYXNzZXRNZXRhZGF0YUtleU5hbWVzKCkpIHsKICAgICAgICAgQVZLZXlWYWx1
ZVN0YXR1cyBrZXlTdGF0dXMgPSBbbV9hdkFzc2V0LmdldCgpIHN0YXR1c09mVmFsdWVGb3JLZXk6
a2V5TmFtZSBlcnJvcjpuaWxdOwpAQCAtNTk4LDcgKzU4Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBzZXREZWxheUNhbGxi
YWNrcyhmYWxzZSk7CiAKLSAgICBtX3ZpZGVvRnJhbWVIYXNEcmF3biA9IHRydWU7CisgICAgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwYWludChjb250ZXh0LCByZWN0KTsKIH0KIAog
c3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hlKCkKQEAgLTY3Myw1MSArNjYyLDM3
IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1lZGlhVGltZUZv
clRpbWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dHJhY2tzQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKCFtX2F2QXNzZXQpCi0g
ICAgICAgIHJldHVybjsKLQogICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSB0cmFj
a3MgY29sbGVjdGlvbiBjaGFuZ2VzIHNvIGNhY2hlIGhhc1ZpZGVvIGFuZCBoYXNBdWRpbyBzaW5j
ZSB3ZSBhcmUKICAgICAvLyBhc2tlZCBhYm91dCB0aG9zZSBmYWlybHkgZmVxdWVudGx5LgotICAg
IGlmICghbV9hdlBsYXllckl0ZW0pIHsKLSAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHBsYXll
ciBpdGVtIHlldCwgc28gY2hlY2sgd2l0aCB0aGUgYXNzZXQgYmVjYXVzZSBzb21lIGFzc2V0cyBz
dXBwb3J0IGluc3BlY3Rpb24KLSAgICAgICAgLy8gcHJpb3IgdG8gYmVjb21pbmcgcmVhZHkgdG8g
cGxheS4KLSAgICAgICAgc2V0SGFzVmlkZW8oW1ttX2F2QXNzZXQuZ2V0KCkgdHJhY2tzV2l0aE1l
ZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljVmlzdWFsXSBjb3VudF0pOwot
ICAgICAgICBzZXRIYXNBdWRpbyhbW21fYXZBc3NldC5nZXQoKSB0cmFja3NXaXRoTWVkaWFDaGFy
YWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlXSBjb3VudF0pOwotICAgICAg
ICBzZXRIYXNDbG9zZWRDYXB0aW9ucyhbW21fYXZBc3NldC5nZXQoKSB0cmFja3NXaXRoTWVkaWFU
eXBlOkFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbl0gY291bnRdKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBib29sIGhhc1ZpZGVvID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgaGFzQXVkaW8gPSBmYWxz
ZTsKLSAgICAgICAgYm9vbCBoYXNDYXB0aW9ucyA9IGZhbHNlOwotICAgICAgICBOU0FycmF5ICp0
cmFja3MgPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgdHJhY2tzXTsKLSAgICAgICAgZm9yIChBVlBs
YXllckl0ZW1UcmFjayAqdHJhY2sgaW4gdHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAoW3RyYWNr
IGlzRW5hYmxlZF0pIHsKLSAgICAgICAgICAgICAgICBBVkFzc2V0VHJhY2sgKmFzc2V0VHJhY2sg
PSBbdHJhY2sgYXNzZXRUcmFja107Ci0gICAgICAgICAgICAgICAgaWYgKFtbYXNzZXRUcmFjayBt
ZWRpYVR5cGVdIGlzRXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZVZpZGVvXSkKLSAgICAgICAgICAg
ICAgICAgICAgaGFzVmlkZW8gPSB0cnVlOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKFtbYXNz
ZXRUcmFjayBtZWRpYVR5cGVdIGlzRXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZUF1ZGlvXSkKLSAg
ICAgICAgICAgICAgICAgICAgaGFzQXVkaW8gPSB0cnVlOwotICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKFtbYXNzZXRUcmFjayBtZWRpYVR5cGVdIGlzRXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZUNs
b3NlZENhcHRpb25dKQotICAgICAgICAgICAgICAgICAgICBoYXNDYXB0aW9ucyA9IHRydWU7Ci0g
ICAgICAgICAgICB9CisgICAgYm9vbCBoYXNWaWRlbyA9IGZhbHNlOworICAgIGJvb2wgaGFzQXVk
aW8gPSBmYWxzZTsKKyAgICBib29sIGhhc0NhcHRpb25zID0gZmFsc2U7CisgICAgTlNBcnJheSAq
dHJhY2tzID0gW21fYXZQbGF5ZXJJdGVtLmdldCgpIHRyYWNrc107CisgICAgZm9yIChBVlBsYXll
ckl0ZW1UcmFjayAqdHJhY2sgaW4gdHJhY2tzKSB7CisgICAgICAgIGlmIChbdHJhY2sgaXNFbmFi
bGVkXSkgeworICAgICAgICAgICAgQVZBc3NldFRyYWNrICphc3NldFRyYWNrID0gW3RyYWNrIGFz
c2V0VHJhY2tdOworICAgICAgICAgICAgaWYgKFtbYXNzZXRUcmFjayBtZWRpYVR5cGVdIGlzRXF1
YWxUb1N0cmluZzpBVk1lZGlhVHlwZVZpZGVvXSkKKyAgICAgICAgICAgICAgICBoYXNWaWRlbyA9
IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmIChbW2Fzc2V0VHJhY2sgbWVkaWFUeXBlXSBpc0Vx
dWFsVG9TdHJpbmc6QVZNZWRpYVR5cGVBdWRpb10pCisgICAgICAgICAgICAgICAgaGFzQXVkaW8g
PSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoW1thc3NldFRyYWNrIG1lZGlhVHlwZV0gaXNF
cXVhbFRvU3RyaW5nOkFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbl0pCisgICAgICAgICAgICAgICAg
aGFzQ2FwdGlvbnMgPSB0cnVlOwogICAgICAgICB9Ci0gICAgICAgIHNldEhhc1ZpZGVvKGhhc1Zp
ZGVvKTsKLSAgICAgICAgc2V0SGFzQXVkaW8oaGFzQXVkaW8pOwotICAgICAgICBzZXRIYXNDbG9z
ZWRDYXB0aW9ucyhoYXNDYXB0aW9ucyk7CiAgICAgfQorICAgIHNldEhhc1ZpZGVvKGhhc1ZpZGVv
KTsKKyAgICBzZXRIYXNBdWRpbyhoYXNBdWRpbyk7CisgICAgc2V0SGFzQ2xvc2VkQ2FwdGlvbnMo
aGFzQ2FwdGlvbnMpOwogCiAgICAgc2l6ZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaXplQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKCFtX2F2
QXNzZXQpCi0gICAgICAgIHJldHVybjsKLQogICAgIE5TQXJyYXkgKnRyYWNrcyA9IFttX2F2QXNz
ZXQuZ2V0KCkgdHJhY2tzXTsKIAogICAgIC8vIFNvbWUgYXNzZXRzIGRvbid0IHJlcG9ydCB0cmFj
ayBwcm9wZXJ0aWVzIHVudGlsIHRoZXkgYXJlIGNvbXBsZXRlbHkgcmVhZHkgdG8gcGxheSwgYnV0
IHdlCiAgICAgLy8gd2FudCB0byByZXBvcnQgYSBzaXplIGFzIGVhcmx5IGFzIHBvc3NpYmxlIHNv
IHVzZSBwcmVzZW50YXRpb25TaXplIHdoZW4gYW4gYXNzZXQgaGFzIG5vIHRyYWNrcy4KLSAgICBp
ZiAobV9hdlBsYXllckl0ZW0gJiYgIVt0cmFja3MgY291bnRdKSB7CisgICAgaWYgKCFbdHJhY2tz
IGNvdW50XSkgewogICAgICAgICBzZXROYXR1cmFsU2l6ZShJbnRTaXplKFttX2F2UGxheWVySXRl
bS5nZXQoKSBwcmVzZW50YXRpb25TaXplXSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>