<?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>97885</bug_id>
          
          <creation_ts>2012-09-28 03:41:49 -0700</creation_ts>
          <short_desc>Add parseDateTime, formatDateTime, and dateFormatText to Localizer</short_desc>
          <delta_ts>2012-09-28 09:45: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>Platform</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>96351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>peter+ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730455</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 03:41:49 -0700</bug_when>
    <thetext>Add parseDateTime, formatDateTime, and dateFormatText to Localizer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730466</commentid>
    <comment_count>1</comment_count>
      <attachid>166199</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 04:02:14 -0700</bug_when>
    <thetext>Created attachment 166199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730467</commentid>
    <comment_count>2</comment_count>
      <attachid>166199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 04:07:03 -0700</bug_when>
    <thetext>Comment on attachment 166199
Patch

Attachment 166199 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14064210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730476</commentid>
    <comment_count>3</comment_count>
      <attachid>166199</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-28 04:16:01 -0700</bug_when>
    <thetext>Comment on attachment 166199
Patch

Attachment 166199 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14070180</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730480</commentid>
    <comment_count>4</comment_count>
      <attachid>166203</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 04:21:51 -0700</bug_when>
    <thetext>Created attachment 166203
Patch 2

Fix ICU build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730491</commentid>
    <comment_count>5</comment_count>
      <attachid>166203</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 04:37:43 -0700</bug_when>
    <thetext>Comment on attachment 166203
Patch 2

View in context: https://bugs.webkit.org/attachment.cgi?id=166203&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        This is a preparation to remove LocalizedData.h.

Oops, LocalizedData.h -&gt; LocalizedDate.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730590</commentid>
    <comment_count>6</comment_count>
      <attachid>166203</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-28 06:27:40 -0700</bug_when>
    <thetext>Comment on attachment 166203
Patch 2

View in context: https://bugs.webkit.org/attachment.cgi?id=166203&amp;action=review

Looks OK.

&gt; Source/WebCore/platform/text/LocaleNone.cpp:71
&gt; +    return ASCIILiteral(&quot;Year-Month-Day&quot;);

I&apos;m not sure if this should be ASCIILiteral(&quot;Year-Month-Day&quot;) or String().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730709</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 08:56:34 -0700</bug_when>
    <thetext>Thank you for reviewing.

(In reply to comment #6)
&gt; &gt; +    return ASCIILiteral(&quot;Year-Month-Day&quot;);
&gt; 
&gt; I&apos;m not sure if this should be ASCIILiteral(&quot;Year-Month-Day&quot;) or String().

I&apos;m sure it should be non-empty string showing acceptable date format. Actually this code is never used because all of ports with ENABLE_CALENDAR_PICKER use no LocaleNone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730710</commentid>
    <comment_count>8</comment_count>
      <attachid>166203</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 08:56:52 -0700</bug_when>
    <thetext>Comment on attachment 166203
Patch 2

Rejecting attachment 166203 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:
form/text/Localizer.h.rej
patching file Source/WebCore/platform/text/mac/LocaleMac.h
patching file Source/WebCore/platform/text/mac/LocaleMac.mm
patching file Source/WebCore/platform/text/mac/LocalizedDateMac.cpp
patching file Source/WebKit/chromium/tests/LocaleMacTest.cpp
patching file Source/WebKit/chromium/tests/LocaleWinTest.cpp

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

Full output: http://queues.webkit.org/results/14059388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730752</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-28 09:45:58 -0700</bug_when>
    <thetext>Committed r129912: &lt;http://trac.webkit.org/changeset/129912&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166199</attachid>
            <date>2012-09-28 04:02:14 -0700</date>
            <delta_ts>2012-09-28 04:21:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97885-20120928200130.patch</filename>
            <type>text/plain</type>
            <size>19967</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYwODI1OTllMTk5NjU3
YWE3YWM1M2FmMTA4ZjQyZjAxZjYyOTg2Yi4uMTBlZDU2YWI0NDg4NDEwZWE5M2RlMjFlZDMzOWQ0
YmIyZmVlMzhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTA5LTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgcGFyc2VEYXRlVGlt
ZSwgZm9ybWF0RGF0ZVRpbWUsIGFuZCBkYXRlRm9ybWF0VGV4dCB0byBMb2NhbGl6ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHByZXBh
cmF0aW9uIHRvIHJlbW92ZSBMb2NhbGl6ZWREYXRhLmguCisKKyAgICAgICAgQWRkIHRoZSBmb2xs
b3dpbmcgcHVyZSB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgdG8gTG9jYWxpemVyLgorICAgICAg
ICAgIHBhcnNlRGF0ZVRpbWUKKyAgICAgICAgICBmb3JtYXREYXRlVGltZQorICAgICAgICAgIGRh
dGVGb3JtYXRUZXh0LgorCisgICAgICAgIFdlIHJlbmFtZSBleGlzdGluZyBwYXJzZS9mb3JtYXQg
ZnVuY3Rpb25zIGZvciB0eXBlPWRhdGUgaW4gTG9jYWxlKgorICAgICAgICBjbGFzc2VzLCBhbmQg
ZXh0ZW5kIHRoZWlyIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IHN1cHBvcnQgb3RoZXIKKyAg
ICAgICAgZGF0ZS90aW1lIHR5cGVzLiBUaGV5IG92ZXJyaWRlIHRoZSBuZXcgZnVuY3Rpb25zIG9m
IExvY2FsaXplci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFu
Z2UgYW55IGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaDoK
KyAgICAgICAgKExvY2FsaXplcik6IEFkZCBwYXJzZURhdGVUaW1lLCBmb3JtYXREYXRlVGltZSwg
YW5kIGRhdGVGb3JtYXRUZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1Uu
aDoKKyAgICAgICAgKExvY2FsZUlDVSk6CisgICAgICAgIC0gUmVuYW1lIHBhcnNlTG9jYWxpemVk
RGF0ZSB0byBwYXJzZURhdGVUaW1lCisgICAgICAgIC0gQWRkIHR5cGUgYXJndW1lbnQgdG8gcGFy
c2VEYXRlVGltZQorICAgICAgICAtIFJlbmFtZSBmb3JtYXRMb2NhbGl6ZWREYXRlIHRvIGZvcm1h
dERhdGVUaW1lCisgICAgICAgIC0gUmVuYW1lIGxvY2FsaXplZERhdGVGb3JtYXRUZXh0IHRvIGRh
dGVGb3JtYXRUZXh0CisgICAgICAgIC0gTWFrZSBwYXJzZURhdGVUaW1lL2Zvcm1hdERhdGVUaW1l
L2RhdGVGb3JtYXRUZXh0IHZpcnR1YWwuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKToKKyAg
ICAgICAgUmVuYW1lZC4gUmVqZWN0IG5vbi1kYXRlIHR5cGVzLgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxlSUNVOjpmb3JtYXREYXRlVGltZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TG9j
YWxlSUNVOjpkYXRlRm9ybWF0VGV4dCk6IFJlbmFtZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcDogTW92ZWQgc29tZSBjb2RlIHRvIExvY2FsZUlDVS5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxvY2FsaXplZERhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Zm9ybWF0TG9jYWxpemVkRGF0ZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2Fs
ZU5vbmUuY3BwOgorICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRpb25zIG9mIHBhcnNlRGF0
ZVRpbWUsIGZvcm1hdERhdGVUaW1lLCBhbmQKKyAgICAgICAgZGF0ZUZvcm1hdFRleHQuCisgICAg
ICAgIChMb2NhbGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU5vbmU6OnBhcnNlRGF0
ZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTm9uZTo6Zm9ybWF0RGF0ZVRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTm9uZTo6ZGF0ZUZvcm1hdFRleHQpOgorCisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6CisgICAg
ICAgIC0gUmVuYW1lIHBhcnNlRGF0ZSB0byBwYXJzZURhdGVUaW1lCisgICAgICAgIC0gQWRkIHR5
cGUgYXJndW1lbnQgdG8gcGFyc2VEYXRlVGltZQorICAgICAgICAtIFJlbmFtZSBmb3JtYXREYXRl
IHRvIGZvcm1hdERhdGVUaW1lCisgICAgICAgIC0gTWFrZSBwYXJzZURhdGVUaW1lL2Zvcm1hdERh
dGVUaW1lL2RhdGVGb3JtYXRUZXh0IHZpcnR1YWwuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpwYXJzZURhdGVUaW1l
KToKKyAgICAgICAgUmVuYW1lZC4gUmVqZWN0IG5vbi1kYXRlIHR5cGVzLgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxlV2luOjpmb3JtYXREYXRlVGltZSk6IGRpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHA6IE1vdmVkIHNvbWUgY29kZSB0byBMb2NhbGVX
aW4uY3BwLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VMb2NhbGl6ZWREYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZERhdGUpOgorCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLmg6CisgICAgICAgIChMb2NhbGVNYWMpOgorICAgICAgICAtIFJlbmFt
ZSBwYXJzZURhdGUgdG8gcGFyc2VEYXRlVGltZQorICAgICAgICAtIEFkZCB0eXBlIGFyZ3VtZW50
IHRvIHBhcnNlRGF0ZVRpbWUKKyAgICAgICAgLSBSZW5hbWUgZm9ybWF0RGF0ZSB0byBmb3JtYXRE
YXRlVGltZQorICAgICAgICAtIE1ha2UgcGFyc2VEYXRlVGltZS9mb3JtYXREYXRlVGltZS9kYXRl
Rm9ybWF0VGV4dCB2aXJ0dWFsLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU1hYzo6cGFyc2VEYXRlVGltZSk6CisgICAg
ICAgIFJlbmFtZWQuIFJlamVjdCBub24tZGF0ZSB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGl6ZWREYXRlTWFjLmNwcDogTW92ZWQgc29tZSBjb2RlIHRvIExvY2FsZU1hYy5t
bS4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkRGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpmb3JtYXRMb2NhbGl6ZWREYXRlKToKKwogMjAxMi0wOS0yNyAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIExvY2FsaXplciBpbiBQYWdlUG9wdXBD
b250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDczYzk3YjdmOGFlYzFmY2Ix
Y2NhNTQ5MDRlOTYwOTczZDVmZjFkNGIuLmQxZWI4ZjljYjk3MWE0Mjc4NzExOGIwMjZhOWMxMzVm
MTg3YTM0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDktMjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFk
ZCBwYXJzZURhdGVUaW1lLCBmb3JtYXREYXRlVGltZSwgYW5kIGRhdGVGb3JtYXRUZXh0IHRvIExv
Y2FsaXplcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHRlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwOiBGb2xsb3cgcmVuYW1pbmcgb2YgTG9jYWxlTWFjIGZ1
bmN0aW9ucy4KKyAgICAgICAgKExvY2FsZU1hY1Rlc3Q6OmZvcm1hdERhdGUpOgorICAgICAgICAo
TG9jYWxlTWFjVGVzdDo6cGFyc2VEYXRlKToKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGVXaW5UZXN0
LmNwcDogRm9sbG93IHJlbmFtaW5nIG9mIExvY2FsZVdpbiBmdW5jdGlvbnMuCisgICAgICAgIChM
b2NhbGVXaW5UZXN0Ojpmb3JtYXREYXRlKToKKyAgICAgICAgKExvY2FsZVdpblRlc3Q6OnBhcnNl
RGF0ZSk6CisKIDIwMTItMDktMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZSBMb2NhbGl6ZXIgaW4gUGFnZVBvcHVwQ29udHJvbGxlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCmluZGV4IGI0NTUwMGQ4OWY1ODRiZjI3
YmIxNTg0MDJlZGMxYjI0Mjg1ZDdjMTMuLmI0OTdjOTdhMjk3MmIxMmRiMjUxNjJlMWMyMTMyZjZm
N2EzMWJlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAK
QEAgLTE2NCw4ICsxNjQsMTAgQEAgVURhdGVGb3JtYXQqIExvY2FsZUlDVTo6b3BlbkRhdGVGb3Jt
YXQoVURhdGVGb3JtYXRTdHlsZSB0aW1lU3R5bGUsIFVEYXRlRm9ybWF0U3QKICAgICByZXR1cm4g
dWRhdF9vcGVuKHRpbWVTdHlsZSwgZGF0ZVN0eWxlLCBtX2xvY2FsZS5kYXRhKCksIGdtdFRpbWV6
b25lLCBXVEZfQVJSQVlfTEVOR1RIKGdtdFRpbWV6b25lKSwgMCwgLTEsICZzdGF0dXMpOwogfQog
Ci1kb3VibGUgTG9jYWxlSUNVOjpwYXJzZUxvY2FsaXplZERhdGUoY29uc3QgU3RyaW5nJiBpbnB1
dCkKK2RvdWJsZSBMb2NhbGVJQ1U6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwg
RGF0ZUNvbXBvbmVudHM6OlR5cGUpCiB7CisgICAgaWYgKHR5cGUgIT0gRGF0ZUNvbXBvbmVudHM6
OkRhdGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0
X05hTigpOwogICAgIGlmICghaW5pdGlhbGl6ZVNob3J0RGF0ZUZvcm1hdCgpKQogICAgICAgICBy
ZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgaWYgKGlucHV0
Lmxlbmd0aCgpID4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptYXgoKSkpCkBAIC0xODAsOCArMTgyLDEwIEBAIGRvdWJsZSBMb2NhbGVJQ1U6OnBhcnNlTG9j
YWxpemVkRGF0ZShjb25zdCBTdHJpbmcmIGlucHV0KQogICAgIHJldHVybiBkYXRlOwogfQogCi1T
dHJpbmcgTG9jYWxlSUNVOjpmb3JtYXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JiBkYXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKIHsKKyAgICBpZiAoZGF0ZUNvbXBvbmVu
dHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgaWYgKCFpbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCkpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICBkb3VibGUgaW5wdXQgPSBkYXRlQ29tcG9uZW50cy5taWxsaXNlY29u
ZHNTaW5jZUVwb2NoKCk7CkBAIC0yODEsNyArMjg1LDcgQEAgdm9pZCBMb2NhbGVJQ1U6OmluaXRp
YWxpemVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpCiAgICAgbV9sb2NhbGl6ZWREYXRlRm9ybWF0
VGV4dCA9IGxvY2FsaXplRm9ybWF0KGdldERhdGVGb3JtYXRQYXR0ZXJuKG1fc2hvcnREYXRlRm9y
bWF0KSk7CiB9CiAKLVN0cmluZyBMb2NhbGVJQ1U6OmxvY2FsaXplZERhdGVGb3JtYXRUZXh0KCkK
K1N0cmluZyBMb2NhbGVJQ1U6OmRhdGVGb3JtYXRUZXh0KCkKIHsKICAgICBpbml0aWFsaXplTG9j
YWxpemVkRGF0ZUZvcm1hdFRleHQoKTsKICAgICByZXR1cm4gbV9sb2NhbGl6ZWREYXRlRm9ybWF0
VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNV
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmluZGV4IDJmNzdk
MjdiOGM4ZDlhMDg5ZmIzODI4MTY4ZTQyNTUxYWE2MWUzZGUuLjkwZDZkYzM3NWRmNzgxOTQ4NWI2
MDQ0MTdiZTBmYjE1NmNkMTcxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuaApAQCAtNTEsMTAgKzUxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Mb2NhbGVJ
Q1UoKTsKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCi0gICAgZG91YmxlIHBhcnNlTG9jYWxp
emVkRGF0ZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZm9ybWF0TG9jYWxpemVkRGF0ZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUo
Y29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7
CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLSAgICBTdHJpbmcgbG9jYWxpemVkRGF0ZUZv
cm1hdFRleHQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5U2hvcnRMYWJl
bHMoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUu
Y3BwCmluZGV4IGZlNDhjN2Y3OTllOWE4MmFkYTM1MjkwN2NiODU5N2FiYjkyMmY4ZTMuLjc5ODll
Y2IzOWNlZmRkNzM5MmFiODlkNjA5YjRiM2ViNjlkNjg2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25lLmNwcApAQCAtMzUsNiArMzUsMTEgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTG9jYWxpemVyRGF0YSgpIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3Ry
aW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5n
IGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CisjaWYgRU5B
QkxFKENBTEVOREFSX1BJQ0tFUikKKyAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgp
IE9WRVJSSURFOworI2VuZGlmCiB9OwogCiBQYXNzT3duUHRyPExvY2FsaXplcj4gTG9jYWxpemVy
OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJikKQEAgLTUwLDQgKzU1LDIxIEBAIHZvaWQgTG9j
YWxlTm9uZTo6aW5pdGlhbGl6ZUxvY2FsaXplckRhdGEoKQogewogfQogCitkb3VibGUgTG9jYWxl
Tm9uZTo6cGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkK
K3sKKyAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
K30KKworU3RyaW5nIExvY2FsZU5vbmU6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJikKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNpZiBFTkFCTEUoQ0FMRU5EQVJf
UElDS0VSKQorU3RyaW5nIExvY2FsZU5vbmU6OmRhdGVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJZZWFyLU1vbnRoLURheSIpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNw
cAppbmRleCA1N2NiZDA3OTBkODJjNjEyOTExMThlNDNlZWNkNjJhZjg3NTc3NWNlLi5jMmJiMjBk
YmU1MTllNjk2YTQzZTkzMjFjYzhmMDZjMTY1OGM4NTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCkBAIC0zNTQsOCArMzU0LDEwIEBAIGludCBMb2NhbGVX
aW46OnBhcnNlTnVtYmVyT3JNb250aChjb25zdCBTdHJpbmcmIGlucHV0LCB1bnNpZ25lZCYgaW5k
ZXgpCiAgICAgcmV0dXJuIC0xOwogfQogCi1kb3VibGUgTG9jYWxlV2luOjpwYXJzZURhdGUoY29u
c3QgU3RyaW5nJiBpbnB1dCkKK2RvdWJsZSBMb2NhbGVXaW46OnBhcnNlRGF0ZVRpbWUoY29uc3Qg
U3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKIHsKKyAgICBpZiAodHlw
ZSAhPSBEYXRlQ29tcG9uZW50czo6RGF0ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgZW5zdXJlU2hvcnREYXRlVG9rZW5zKCk7
CiAgICAgcmV0dXJuIHBhcnNlRGF0ZShtX3Nob3J0RGF0ZVRva2VucywgbV9iYXNlWWVhciwgaW5w
dXQpOwogfQpAQCAtNDc4LDggKzQ4MCwxMCBAQCB2b2lkIExvY2FsZVdpbjo6YXBwZW5kRm91ckRp
Z2l0c051bWJlcihpbnQgdmFsdWUsIFN0cmluZ0J1aWxkZXImIGJ1ZmZlcikKICAgICBidWZmZXIu
YXBwZW5kKGNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihudW1iZXJCdWZmZXIudG9TdHJpbmcoKSkp
OwogfQogCi1TdHJpbmcgTG9jYWxlV2luOjpmb3JtYXREYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JiBkYXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKIHsKKyAgICBpZiAoZGF0ZUNvbXBvbmVu
dHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgZW5zdXJlU2hvcnREYXRlVG9rZW5zKCk7CiAgICAgcmV0dXJuIGZvcm1hdERhdGUo
bV9zaG9ydERhdGVUb2tlbnMsIG1fYmFzZVllYXIsIGRhdGVDb21wb25lbnRzLmZ1bGxZZWFyKCks
IGRhdGVDb21wb25lbnRzLm1vbnRoKCksIGRhdGVDb21wb25lbnRzLm1vbnRoRGF5KCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKaW5kZXggMzFiYWZmNTU3YTRi
MGFlYWU3YjYzOWMxMmNjNDI1MGMwN2UzMTkxOC4uMDg5YTQ5ZGU3ZmRlYmY5OWUyMzA4YmMxOWNm
MGViNWRlOTMxNWU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5o
CkBAIC00NywxMCArNDcsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2Fs
ZVdpbj4gY3JlYXRlKExDSUQpOwogICAgIHN0YXRpYyBMb2NhbGVXaW4qIGN1cnJlbnRMb2NhbGUo
KTsKICAgICB+TG9jYWxlV2luKCk7Ci0gICAgZG91YmxlIHBhcnNlRGF0ZShjb25zdCBTdHJpbmcm
KTsKLSAgICBTdHJpbmcgZm9ybWF0RGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZp
cnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6
OlR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0
IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikK
LSAgICBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9y
bWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1v
bnRoTGFiZWxzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
d2Vla0RheVNob3J0TGFiZWxzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXJz
dERheU9mV2VlaygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAKaW5kZXggMGE5ODIxZGJmODE0YjJhNzg5YjBmMzg3ZTk3
YzI2MDg3NTJjMzU3ZS4uZDY5YTMzYmE2NmQ0NGQzYzIwMGVhNGZkY2YzZDM1MzNkMmQzN2FlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNV
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1Uu
Y3BwCkBAIC00MCwzNCArNDAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBkb3VibGUgcGFy
c2VMb2NhbGl6ZWREYXRlKGNvbnN0IFN0cmluZyYgaW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBl
IHR5cGUpCiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6
RGF0ZToKLSAgICAgICAgcmV0dXJuIExvY2FsZUlDVTo6Y3VycmVudExvY2FsZSgpLT5wYXJzZUxv
Y2FsaXplZERhdGUoaW5wdXQpOwotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lOgot
ICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lTG9jYWw6Ci0gICAgY2FzZSBEYXRlQ29t
cG9uZW50czo6TW9udGg6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6VGltZToKLSAgICBjYXNl
IERhdGVDb21wb25lbnRzOjpXZWVrOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkludmFsaWQ6
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCk7CisgICAgcmV0dXJuIExvY2FsZUlDVTo6Y3VycmVudExvY2FsZSgpLT5w
YXJzZURhdGVUaW1lKGlucHV0LCB0eXBlKTsKIH0KIAogU3RyaW5nIGZvcm1hdExvY2FsaXplZERh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogewotICAgIHN3aXRjaCAo
ZGF0ZUNvbXBvbmVudHMudHlwZSgpKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZToK
LSAgICAgICAgcmV0dXJuIExvY2FsZUlDVTo6Y3VycmVudExvY2FsZSgpLT5mb3JtYXRMb2NhbGl6
ZWREYXRlKGRhdGVDb21wb25lbnRzKTsKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGlt
ZToKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxvY2FsOgotICAgIGNhc2UgRGF0
ZUNvbXBvbmVudHM6Ok1vbnRoOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OlRpbWU6Ci0gICAg
Y2FzZSBEYXRlQ29tcG9uZW50czo6V2VlazoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpJbnZh
bGlkOgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJl
dHVybiBMb2NhbGVJQ1U6OmN1cnJlbnRMb2NhbGUoKS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBv
bmVudHMpOwogfQogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVXaW4uY3BwCmluZGV4IGI1N2YyMDFl
ZmU2NTMzODBkY2ZhMDQ0MDI5YjgxMWRlY2MyY2JhZDIuLjAxMDhlMGVlYTc2YTE2NGE4NjJjZDc5
ODc1NzQ1ZWE2YjRiNDg3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWREYXRlV2luLmNwcApAQCAtNDAsMzQgKzQwLDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogZG91YmxlIHBhcnNlTG9jYWxpemVkRGF0ZShjb25zdCBTdHJpbmcmIGlucHV0LCBE
YXRlQ29tcG9uZW50czo6VHlwZSB0eXBlKQogewotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNh
c2UgRGF0ZUNvbXBvbmVudHM6OkRhdGU6Ci0gICAgICAgIHJldHVybiBMb2NhbGVXaW46OmN1cnJl
bnRMb2NhbGUoKS0+cGFyc2VEYXRlKGlucHV0KTsKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpE
YXRlVGltZToKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxvY2FsOgotICAgIGNh
c2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRoOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OlRpbWU6
Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6V2VlazoKLSAgICBjYXNlIERhdGVDb21wb25lbnRz
OjpJbnZhbGlkOgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIG51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgIHJldHVybiBMb2NhbGVXaW46OmN1cnJlbnRM
b2NhbGUoKS0+cGFyc2VEYXRlVGltZShpbnB1dCwgdHlwZSk7CiB9CiAKIFN0cmluZyBmb3JtYXRM
b2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKIHsKLSAg
ICBzd2l0Y2ggKGRhdGVDb21wb25lbnRzLnR5cGUoKSkgewotICAgIGNhc2UgRGF0ZUNvbXBvbmVu
dHM6OkRhdGU6Ci0gICAgICAgIHJldHVybiBMb2NhbGVXaW46OmN1cnJlbnRMb2NhbGUoKS0+Zm9y
bWF0RGF0ZShkYXRlQ29tcG9uZW50cyk7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZVRp
bWU6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZVRpbWVMb2NhbDoKLSAgICBjYXNlIERh
dGVDb21wb25lbnRzOjpNb250aDoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpUaW1lOgotICAg
IGNhc2UgRGF0ZUNvbXBvbmVudHM6OldlZWs6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6SW52
YWxpZDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBy
ZXR1cm4gTG9jYWxlV2luOjpjdXJyZW50TG9jYWxlKCktPmZvcm1hdERhdGVUaW1lKGRhdGVDb21w
b25lbnRzKTsKIH0KIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAppbmRleCBjNTVkZDBjNzVmNWM0MTVhMGZmM2ZiNTVj
NTExZWNlMWQ4YzIxMmI0Li5lMzBiYzgwOGNkN2MxMGZiMjMwMjFmMTdiY2FiYTM5MThiOTlkNWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgTG9jYWxpemVyX2gKICNkZWZpbmUgTG9jYWxpemVyX2gKIAorI2luY2x1
ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDggKzY4LDEzIEBAIHB1YmxpYzoKIAogICAgIC8v
IFRoZSBmaXJzdCBkYXkgb2YgYSB3ZWVrLiAwIGlzIFN1bmRheSwgYW5kIDYgaXMgU2F0dXJkYXku
CiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXJzdERheU9mV2VlaygpID0gMDsKKworICAgIHZpcnR1
YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIGRv
dWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzOjpUeXBlKSA9
IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVu
dHMmKSA9IDA7CisKICAgICB2aXJ0dWFsIH5Mb2NhbGl6ZXIoKTsKIAogcHJvdGVjdGVkOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAppbmRleCBmNmVlMTI3
MTZkODUzYzliMjFhZjhjMzI2NzBjM2E1ZDRmMDVjMjQ4Li5mZjY0YzE5MWE5MTNhNDUyZGRiYmFk
MmQ2YWFhZjc4ZThhNzM0M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L21hYy9Mb2NhbGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21h
Yy9Mb2NhbGVNYWMuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c093blB0cjxMb2NhbGVNYWM+IGNyZWF0ZShOU0xvY2FsZSopOwogICAgIHN0YXRpYyBMb2NhbGVN
YWMqIGN1cnJlbnRMb2NhbGUoKTsKICAgICB+TG9jYWxlTWFjKCk7Ci0gICAgZG91YmxlIHBhcnNl
RGF0ZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZm9ybWF0RGF0ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYpOworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5n
JiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZv
cm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CiAKICNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpOworICAgIHZp
cnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5U2hvcnRMYWJlbHMoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KaW5kZXggNjhhMmRjMzUwM2NlM2Y0
ZmRhNTY1YWIxMzUzMDM4OTg0YTkwZmQ3NC4uZTI1ZGY3ZjQ0YTIzYjRiYWViYzU1MWUyMDU2NGZl
MzI1ZTBkNGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMv
TG9jYWxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2Fs
ZU1hYy5tbQpAQCAtMTE4LDggKzExOCwxMCBAQCBOU0RhdGVGb3JtYXR0ZXIqIExvY2FsZU1hYzo6
Y3JlYXRlU2hvcnREYXRlRm9ybWF0dGVyKCkKICAgICByZXR1cm4gY3JlYXRlRGF0ZVRpbWVGb3Jt
YXR0ZXIobV9sb2NhbGUuZ2V0KCksIE5TRGF0ZUZvcm1hdHRlclNob3J0U3R5bGUsIE5TRGF0ZUZv
cm1hdHRlck5vU3R5bGUpOwogfQogCi1kb3VibGUgTG9jYWxlTWFjOjpwYXJzZURhdGUoY29uc3Qg
U3RyaW5nJiBpbnB1dCkKK2RvdWJsZSBMb2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3Ry
aW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKIHsKKyAgICBpZiAodHlwZSAh
PSBEYXRlQ29tcG9uZW50czo6RGF0ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4g
Zm9ybWF0dGVyKEFkb3B0TlMsIGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRlcigpKTsKICAgICBOU0Rh
dGUgKmRhdGUgPSBbZm9ybWF0dGVyLmdldCgpIGRhdGVGcm9tU3RyaW5nOmlucHV0XTsKICAgICBp
ZiAoIWRhdGUpCkBAIC0xMjcsOCArMTI5LDEwIEBAIGRvdWJsZSBMb2NhbGVNYWM6OnBhcnNlRGF0
ZShjb25zdCBTdHJpbmcmIGlucHV0KQogICAgIHJldHVybiBbZGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZTE5NzBdICogbXNQZXJTZWNvbmQ7CiB9CiAKLVN0cmluZyBMb2NhbGVNYWM6OmZvcm1hdERhdGUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExvY2FsZU1hYzo6
Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogewor
ICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCisg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBm
b3JtYXR0ZXIoQWRvcHROUywgY3JlYXRlU2hvcnREYXRlRm9ybWF0dGVyKCkpOwogICAgIE5TVGlt
ZUludGVydmFsIGludGVydmFsID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9j
aCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAgcmV0dXJuIFN0cmluZyhbZm9ybWF0dGVyLmdldCgpIHN0
cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6aW50ZXJ2
YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2Nh
bGl6ZWREYXRlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2Fs
aXplZERhdGVNYWMuY3BwCmluZGV4IGViZWFlNWFhNDY0ZjdmNGE0MTgwMTdkZTUzYTZjYmUzZTcy
NTRjZmIuLmJiY2Q5YWMxNWMyODk2NDk1NmU5ZjAyNGZiMmE5ZjM4Zjc2Yjg0ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXplZERhdGVNYWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXplZERhdGVNYWMu
Y3BwCkBAIC00MCwzNCArNDAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBkb3VibGUgcGFy
c2VMb2NhbGl6ZWREYXRlKGNvbnN0IFN0cmluZyYgaW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBl
IHR5cGUpCiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6
RGF0ZToKLSAgICAgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgpLT5wYXJzZURh
dGUoaW5wdXQpOwotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lOgotICAgIGNhc2Ug
RGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lTG9jYWw6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6
TW9udGg6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6VGltZToKLSAgICBjYXNlIERhdGVDb21w
b25lbnRzOjpXZWVrOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkludmFsaWQ6Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRf
TmFOKCk7CisgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgpLT5wYXJzZURhdGVU
aW1lKGlucHV0LCB0eXBlKTsKIH0KIAogU3RyaW5nIGZvcm1hdExvY2FsaXplZERhdGUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogewotICAgIHN3aXRjaCAoZGF0ZUNvbXBv
bmVudHMudHlwZSgpKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZToKLSAgICAgICAg
cmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgpLT5mb3JtYXREYXRlKGRhdGVDb21wb25l
bnRzKTsKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZToKLSAgICBjYXNlIERhdGVD
b21wb25lbnRzOjpEYXRlVGltZUxvY2FsOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRo
OgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OlRpbWU6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50
czo6V2VlazoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpJbnZhbGlkOgotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBMb2NhbGVNYWM6OmN1
cnJlbnRMb2NhbGUoKS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMpOwogfQogCiAjaWYg
RU5BQkxFKENBTEVOREFSX1BJQ0tFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0xvY2FsZU1hY1Rlc3QuY3BwCmluZGV4IDViYjdkMjFkMjliOTYzZWE4MDRkYTRhMDE3ZDU0YjA1
NTMzYjNiZjcuLmY1ZjI2OGRiMzViMDgzMTE2ZmJjMGM2N2U3NmI2MjI0NGQzOGIyYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcApAQCAtNjUs
MTMgKzY1LDEzIEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgZm9ybWF0RGF0ZShjb25zdCBTdHJp
bmcmIGxvY2FsZVN0cmluZywgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKICAgICB7CiAg
ICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2Fs
ZVN0cmluZyk7Ci0gICAgICAgIHJldHVybiBsb2NhbGUtPmZvcm1hdERhdGUoZGF0ZUNvbXBvbmVu
dHMoeWVhciwgbW9udGgsIGRheSkpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3JtYXREYXRl
VGltZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5KSk7CiAgICAgfQogCiAgICAgZG91
YmxlIHBhcnNlRGF0ZShjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgY29uc3QgU3RyaW5nJiBk
YXRlU3RyaW5nKQogICAgIHsKICAgICAgICAgT3duUHRyPExvY2FsZU1hYz4gbG9jYWxlID0gTG9j
YWxlTWFjOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIGxvY2FsZS0+cGFy
c2VEYXRlKGRhdGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5wYXJzZURhdGVUaW1l
KGRhdGVTdHJpbmcsIERhdGVDb21wb25lbnRzOjpEYXRlKTsKICAgICB9CiAKICNpZiBFTkFCTEUo
Q0FMRU5EQVJfUElDS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9Mb2NhbGVXaW5UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxl
V2luVGVzdC5jcHAKaW5kZXggNjlhZDlhNGY3NmI1ZWNmMGNmNmIwYzY0NzI2OGI2ZDA5ZTk0OTY0
ZC4uZDIyM2Y2YjliYWNlMmQ4ZTM2ZDg0YjhmMzVjNTkwYTAwZDViMzU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCkBAIC04NywxMyArODcs
MTMgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBmb3JtYXREYXRlKExDSUQgbGNpZCwgaW50IHll
YXIsIGludCBtb250aCwgaW50IGRheSkKICAgICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVXaW4+
IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOwotICAgICAgICByZXR1cm4gbG9jYWxl
LT5mb3JtYXREYXRlKGRhdGVDb21wb25lbnRzKHllYXIsIG1vbnRoLCBkYXkpKTsKKyAgICAgICAg
cmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMoeWVhciwgbW9udGgs
IGRheSkpOwogICAgIH0KIAogICAgIGRvdWJsZSBwYXJzZURhdGUoTENJRCBsY2lkLCBjb25zdCBT
dHJpbmcmIGRhdGVTdHJpbmcpCiAgICAgewogICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2Nh
bGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKLSAgICAgICAgcmV0dXJuIGxvY2FsZS0+cGFy
c2VEYXRlKGRhdGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5wYXJzZURhdGVUaW1l
KGRhdGVTdHJpbmcsIERhdGVDb21wb25lbnRzOjpEYXRlKTsKICAgICB9CiAKICNpZiBFTkFCTEUo
Q0FMRU5EQVJfUElDS0VSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166203</attachid>
            <date>2012-09-28 04:21:51 -0700</date>
            <delta_ts>2012-09-28 08:56:52 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-97885-20120928202108.patch</filename>
            <type>text/plain</type>
            <size>20147</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYwODI1OTllMTk5NjU3
YWE3YWM1M2FmMTA4ZjQyZjAxZjYyOTg2Yi4uMTBlZDU2YWI0NDg4NDEwZWE5M2RlMjFlZDMzOWQ0
YmIyZmVlMzhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTA5LTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgcGFyc2VEYXRlVGlt
ZSwgZm9ybWF0RGF0ZVRpbWUsIGFuZCBkYXRlRm9ybWF0VGV4dCB0byBMb2NhbGl6ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHByZXBh
cmF0aW9uIHRvIHJlbW92ZSBMb2NhbGl6ZWREYXRhLmguCisKKyAgICAgICAgQWRkIHRoZSBmb2xs
b3dpbmcgcHVyZSB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgdG8gTG9jYWxpemVyLgorICAgICAg
ICAgIHBhcnNlRGF0ZVRpbWUKKyAgICAgICAgICBmb3JtYXREYXRlVGltZQorICAgICAgICAgIGRh
dGVGb3JtYXRUZXh0LgorCisgICAgICAgIFdlIHJlbmFtZSBleGlzdGluZyBwYXJzZS9mb3JtYXQg
ZnVuY3Rpb25zIGZvciB0eXBlPWRhdGUgaW4gTG9jYWxlKgorICAgICAgICBjbGFzc2VzLCBhbmQg
ZXh0ZW5kIHRoZWlyIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IHN1cHBvcnQgb3RoZXIKKyAg
ICAgICAgZGF0ZS90aW1lIHR5cGVzLiBUaGV5IG92ZXJyaWRlIHRoZSBuZXcgZnVuY3Rpb25zIG9m
IExvY2FsaXplci4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFu
Z2UgYW55IGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaDoK
KyAgICAgICAgKExvY2FsaXplcik6IEFkZCBwYXJzZURhdGVUaW1lLCBmb3JtYXREYXRlVGltZSwg
YW5kIGRhdGVGb3JtYXRUZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1Uu
aDoKKyAgICAgICAgKExvY2FsZUlDVSk6CisgICAgICAgIC0gUmVuYW1lIHBhcnNlTG9jYWxpemVk
RGF0ZSB0byBwYXJzZURhdGVUaW1lCisgICAgICAgIC0gQWRkIHR5cGUgYXJndW1lbnQgdG8gcGFy
c2VEYXRlVGltZQorICAgICAgICAtIFJlbmFtZSBmb3JtYXRMb2NhbGl6ZWREYXRlIHRvIGZvcm1h
dERhdGVUaW1lCisgICAgICAgIC0gUmVuYW1lIGxvY2FsaXplZERhdGVGb3JtYXRUZXh0IHRvIGRh
dGVGb3JtYXRUZXh0CisgICAgICAgIC0gTWFrZSBwYXJzZURhdGVUaW1lL2Zvcm1hdERhdGVUaW1l
L2RhdGVGb3JtYXRUZXh0IHZpcnR1YWwuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKToKKyAg
ICAgICAgUmVuYW1lZC4gUmVqZWN0IG5vbi1kYXRlIHR5cGVzLgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxlSUNVOjpmb3JtYXREYXRlVGltZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TG9j
YWxlSUNVOjpkYXRlRm9ybWF0VGV4dCk6IFJlbmFtZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcDogTW92ZWQgc29tZSBjb2RlIHRvIExvY2FsZUlDVS5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxvY2FsaXplZERhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Zm9ybWF0TG9jYWxpemVkRGF0ZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2Fs
ZU5vbmUuY3BwOgorICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRpb25zIG9mIHBhcnNlRGF0
ZVRpbWUsIGZvcm1hdERhdGVUaW1lLCBhbmQKKyAgICAgICAgZGF0ZUZvcm1hdFRleHQuCisgICAg
ICAgIChMb2NhbGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU5vbmU6OnBhcnNlRGF0
ZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTm9uZTo6Zm9ybWF0RGF0ZVRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTm9uZTo6ZGF0ZUZvcm1hdFRleHQpOgorCisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6CisgICAg
ICAgIC0gUmVuYW1lIHBhcnNlRGF0ZSB0byBwYXJzZURhdGVUaW1lCisgICAgICAgIC0gQWRkIHR5
cGUgYXJndW1lbnQgdG8gcGFyc2VEYXRlVGltZQorICAgICAgICAtIFJlbmFtZSBmb3JtYXREYXRl
IHRvIGZvcm1hdERhdGVUaW1lCisgICAgICAgIC0gTWFrZSBwYXJzZURhdGVUaW1lL2Zvcm1hdERh
dGVUaW1lL2RhdGVGb3JtYXRUZXh0IHZpcnR1YWwuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpwYXJzZURhdGVUaW1l
KToKKyAgICAgICAgUmVuYW1lZC4gUmVqZWN0IG5vbi1kYXRlIHR5cGVzLgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxlV2luOjpmb3JtYXREYXRlVGltZSk6IGRpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHA6IE1vdmVkIHNvbWUgY29kZSB0byBMb2NhbGVX
aW4uY3BwLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VMb2NhbGl6ZWREYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZERhdGUpOgorCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLmg6CisgICAgICAgIChMb2NhbGVNYWMpOgorICAgICAgICAtIFJlbmFt
ZSBwYXJzZURhdGUgdG8gcGFyc2VEYXRlVGltZQorICAgICAgICAtIEFkZCB0eXBlIGFyZ3VtZW50
IHRvIHBhcnNlRGF0ZVRpbWUKKyAgICAgICAgLSBSZW5hbWUgZm9ybWF0RGF0ZSB0byBmb3JtYXRE
YXRlVGltZQorICAgICAgICAtIE1ha2UgcGFyc2VEYXRlVGltZS9mb3JtYXREYXRlVGltZS9kYXRl
Rm9ybWF0VGV4dCB2aXJ0dWFsLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU1hYzo6cGFyc2VEYXRlVGltZSk6CisgICAg
ICAgIFJlbmFtZWQuIFJlamVjdCBub24tZGF0ZSB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUpOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGl6ZWREYXRlTWFjLmNwcDogTW92ZWQgc29tZSBjb2RlIHRvIExvY2FsZU1hYy5t
bS4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkRGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpmb3JtYXRMb2NhbGl6ZWREYXRlKToKKwogMjAxMi0wOS0yNyAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIExvY2FsaXplciBpbiBQYWdlUG9wdXBD
b250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDczYzk3YjdmOGFlYzFmY2Ix
Y2NhNTQ5MDRlOTYwOTczZDVmZjFkNGIuLmQxZWI4ZjljYjk3MWE0Mjc4NzExOGIwMjZhOWMxMzVm
MTg3YTM0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDktMjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFk
ZCBwYXJzZURhdGVUaW1lLCBmb3JtYXREYXRlVGltZSwgYW5kIGRhdGVGb3JtYXRUZXh0IHRvIExv
Y2FsaXplcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHRlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwOiBGb2xsb3cgcmVuYW1pbmcgb2YgTG9jYWxlTWFjIGZ1
bmN0aW9ucy4KKyAgICAgICAgKExvY2FsZU1hY1Rlc3Q6OmZvcm1hdERhdGUpOgorICAgICAgICAo
TG9jYWxlTWFjVGVzdDo6cGFyc2VEYXRlKToKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGVXaW5UZXN0
LmNwcDogRm9sbG93IHJlbmFtaW5nIG9mIExvY2FsZVdpbiBmdW5jdGlvbnMuCisgICAgICAgIChM
b2NhbGVXaW5UZXN0Ojpmb3JtYXREYXRlKToKKyAgICAgICAgKExvY2FsZVdpblRlc3Q6OnBhcnNl
RGF0ZSk6CisKIDIwMTItMDktMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZSBMb2NhbGl6ZXIgaW4gUGFnZVBvcHVwQ29udHJvbGxlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCmluZGV4IGI0NTUwMGQ4OWY1ODRiZjI3
YmIxNTg0MDJlZGMxYjI0Mjg1ZDdjMTMuLjNlN2YwNjBmMWQzZDBhNGVmNmZkZWIzMGRhNmNjNThi
YmRiZTkwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAK
QEAgLTE2NCw4ICsxNjQsMTAgQEAgVURhdGVGb3JtYXQqIExvY2FsZUlDVTo6b3BlbkRhdGVGb3Jt
YXQoVURhdGVGb3JtYXRTdHlsZSB0aW1lU3R5bGUsIFVEYXRlRm9ybWF0U3QKICAgICByZXR1cm4g
dWRhdF9vcGVuKHRpbWVTdHlsZSwgZGF0ZVN0eWxlLCBtX2xvY2FsZS5kYXRhKCksIGdtdFRpbWV6
b25lLCBXVEZfQVJSQVlfTEVOR1RIKGdtdFRpbWV6b25lKSwgMCwgLTEsICZzdGF0dXMpOwogfQog
Ci1kb3VibGUgTG9jYWxlSUNVOjpwYXJzZUxvY2FsaXplZERhdGUoY29uc3QgU3RyaW5nJiBpbnB1
dCkKK2RvdWJsZSBMb2NhbGVJQ1U6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwg
RGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKIHsKKyAgICBpZiAodHlwZSAhPSBEYXRlQ29tcG9u
ZW50czo6RGF0ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CiAgICAgaWYgKCFpbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCkpCiAgICAg
ICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKICAgICBpZiAo
aW5wdXQubGVuZ3RoKCkgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpKSkKQEAgLTE4MCw4ICsxODIsMTAgQEAgZG91YmxlIExvY2FsZUlDVTo6cGFy
c2VMb2NhbGl6ZWREYXRlKGNvbnN0IFN0cmluZyYgaW5wdXQpCiAgICAgcmV0dXJuIGRhdGU7CiB9
CiAKLVN0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdExvY2FsaXplZERhdGUoY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExvY2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogeworICAgIGlmIChkYXRlQ29t
cG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKICAgICBpZiAoIWluaXRpYWxpemVTaG9ydERhdGVGb3JtYXQoKSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogICAgIGRvdWJsZSBpbnB1dCA9IGRhdGVDb21wb25lbnRzLm1pbGxp
c2Vjb25kc1NpbmNlRXBvY2goKTsKQEAgLTI4MSw3ICsyODUsNyBAQCB2b2lkIExvY2FsZUlDVTo6
aW5pdGlhbGl6ZUxvY2FsaXplZERhdGVGb3JtYXRUZXh0KCkKICAgICBtX2xvY2FsaXplZERhdGVG
b3JtYXRUZXh0ID0gbG9jYWxpemVGb3JtYXQoZ2V0RGF0ZUZvcm1hdFBhdHRlcm4obV9zaG9ydERh
dGVGb3JtYXQpKTsKIH0KIAotU3RyaW5nIExvY2FsZUlDVTo6bG9jYWxpemVkRGF0ZUZvcm1hdFRl
eHQoKQorU3RyaW5nIExvY2FsZUlDVTo6ZGF0ZUZvcm1hdFRleHQoKQogewogICAgIGluaXRpYWxp
emVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpOwogICAgIHJldHVybiBtX2xvY2FsaXplZERhdGVG
b3JtYXRUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXgg
MmY3N2QyN2I4YzhkOWEwODlmYjM4MjgxNjhlNDI1NTFhYTYxZTNkZS4uOTBkNmRjMzc1ZGY3ODE5
NDg1YjYwNDQxN2JlMGZiMTU2Y2QxNzE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZUlDVS5oCkBAIC01MSwxMCArNTEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkxv
Y2FsZUlDVSgpOwogCiAgICAgLy8gRm9yIExvY2FsaXplZERhdGUKLSAgICBkb3VibGUgcGFyc2VM
b2NhbGl6ZWREYXRlKGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRl
VGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVS
UklERTsKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBsb2NhbGl6ZWRE
YXRlRm9ybWF0VGV4dCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aExhYmVscygp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlTaG9y
dExhYmVscygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
Tm9uZS5jcHAKaW5kZXggZmU0OGM3Zjc5OWU5YTgyYWRhMzUyOTA3Y2I4NTk3YWJiOTIyZjhlMy4u
Nzk4OWVjYjM5Y2VmZGQ3MzkyYWI4OWQ2MDliNGIzZWI2OWQ2ODZmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCkBAIC0zNSw2ICszNSwxMSBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVMb2NhbGl6ZXJEYXRh
KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25z
dCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBT
dHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyNp
ZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQorICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRU
ZXh0KCkgT1ZFUlJJREU7CisjZW5kaWYKIH07CiAKIFBhc3NPd25QdHI8TG9jYWxpemVyPiBMb2Nh
bGl6ZXI6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmKQpAQCAtNTAsNCArNTUsMjEgQEAgdm9p
ZCBMb2NhbGVOb25lOjppbml0aWFsaXplTG9jYWxpemVyRGF0YSgpCiB7CiB9CiAKK2RvdWJsZSBM
b2NhbGVOb25lOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzOjpU
eXBlKQoreworICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpOworfQorCitTdHJpbmcgTG9jYWxlTm9uZTo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworI2lmIEVOQUJMRShDQUxF
TkRBUl9QSUNLRVIpCitTdHJpbmcgTG9jYWxlTm9uZTo6ZGF0ZUZvcm1hdFRleHQoKQoreworICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIlllYXItTW9udGgtRGF5Iik7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVX
aW4uY3BwCmluZGV4IDU3Y2JkMDc5MGQ4MmM2MTI5MTExOGU0M2VlY2Q2MmFmODc1Nzc1Y2UuLmMy
YmIyMGRiZTUxOWU2OTZhNDNlOTMyMWNjOGYwNmMxNjU4Yzg1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTM1NCw4ICszNTQsMTAgQEAgaW50IExv
Y2FsZVdpbjo6cGFyc2VOdW1iZXJPck1vbnRoKGNvbnN0IFN0cmluZyYgaW5wdXQsIHVuc2lnbmVk
JiBpbmRleCkKICAgICByZXR1cm4gLTE7CiB9CiAKLWRvdWJsZSBMb2NhbGVXaW46OnBhcnNlRGF0
ZShjb25zdCBTdHJpbmcmIGlucHV0KQorZG91YmxlIExvY2FsZVdpbjo6cGFyc2VEYXRlVGltZShj
b25zdCBTdHJpbmcmIGlucHV0LCBEYXRlQ29tcG9uZW50czo6VHlwZSB0eXBlKQogeworICAgIGlm
ICh0eXBlICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQorICAgICAgICByZXR1cm4gc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKICAgICBlbnN1cmVTaG9ydERhdGVUb2tl
bnMoKTsKICAgICByZXR1cm4gcGFyc2VEYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFy
LCBpbnB1dCk7CiB9CkBAIC00NzgsOCArNDgwLDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRG
b3VyRGlnaXRzTnVtYmVyKGludCB2YWx1ZSwgU3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1
ZmZlci5hcHBlbmQoY29udmVydFRvTG9jYWxpemVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmlu
ZygpKSk7CiB9CiAKLVN0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGUoY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExvY2FsZVdpbjo6Zm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogeworICAgIGlmIChkYXRlQ29t
cG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKICAgICBlbnN1cmVTaG9ydERhdGVUb2tlbnMoKTsKICAgICByZXR1cm4gZm9ybWF0
RGF0ZShtX3Nob3J0RGF0ZVRva2VucywgbV9iYXNlWWVhciwgZGF0ZUNvbXBvbmVudHMuZnVsbFll
YXIoKSwgZGF0ZUNvbXBvbmVudHMubW9udGgoKSwgZGF0ZUNvbXBvbmVudHMubW9udGhEYXkoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaAppbmRleCAzMWJhZmY1
NTdhNGIwYWVhZTdiNjM5YzEyY2M0MjUwYzA3ZTMxOTE4Li4wODlhNDlkZTdmZGViZjk5ZTIzMDhi
YzE5Y2YwZWI1ZGU5MzE1ZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmgKQEAgLTQ3LDEwICs0NywxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
TG9jYWxlV2luPiBjcmVhdGUoTENJRCk7CiAgICAgc3RhdGljIExvY2FsZVdpbiogY3VycmVudExv
Y2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKLSAgICBkb3VibGUgcGFyc2VEYXRlKGNvbnN0IFN0
cmluZyYpOwotICAgIFN0cmluZyBmb3JtYXREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7Cisg
ICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9u
ZW50czo6VHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElD
S0VSKQotICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGRh
dGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgbW9udGhMYWJlbHMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB3ZWVrRGF5U2hvcnRMYWJlbHMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHVuc2lnbmVk
IGZpcnN0RGF5T2ZXZWVrKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcAppbmRleCAwYTk4MjFkYmY4MTRiMmE3ODliMGYz
ODdlOTdjMjYwODc1MmMzNTdlLi4xNzE4MDQ2YWQ5ODFiOTE4NzQ3NTM5MGE5ZDMwNDVkZGYzODI2
OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERh
dGVJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0
ZUlDVS5jcHAKQEAgLTQwLDQwICs0MCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGRvdWJs
ZSBwYXJzZUxvY2FsaXplZERhdGUoY29uc3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgdHlwZSkKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIERhdGVDb21wb25l
bnRzOjpEYXRlOgotICAgICAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPnBh
cnNlTG9jYWxpemVkRGF0ZShpbnB1dCk7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZVRp
bWU6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZVRpbWVMb2NhbDoKLSAgICBjYXNlIERh
dGVDb21wb25lbnRzOjpNb250aDoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpUaW1lOgotICAg
IGNhc2UgRGF0ZUNvbXBvbmVudHM6OldlZWs6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6SW52
YWxpZDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxl
KCktPnBhcnNlRGF0ZVRpbWUoaW5wdXQsIHR5cGUpOwogfQogCiBTdHJpbmcgZm9ybWF0TG9jYWxp
emVkRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCiB7Ci0gICAgc3dp
dGNoIChkYXRlQ29tcG9uZW50cy50eXBlKCkpIHsKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpE
YXRlOgotICAgICAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmZvcm1hdExv
Y2FsaXplZERhdGUoZGF0ZUNvbXBvbmVudHMpOwotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRh
dGVUaW1lOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lTG9jYWw6Ci0gICAgY2Fz
ZSBEYXRlQ29tcG9uZW50czo6TW9udGg6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6VGltZToK
LSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpXZWVrOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6
OkludmFsaWQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgcmV0dXJuIExvY2FsZUlDVTo6Y3VycmVudExvY2FsZSgpLT5mb3JtYXREYXRlVGltZShkYXRl
Q29tcG9uZW50cyk7CiB9CiAKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQogU3RyaW5nIGxv
Y2FsaXplZERhdGVGb3JtYXRUZXh0KCkKIHsKLSAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50
TG9jYWxlKCktPmxvY2FsaXplZERhdGVGb3JtYXRUZXh0KCk7CisgICAgcmV0dXJuIExvY2FsZUlD
VTo6Y3VycmVudExvY2FsZSgpLT5kYXRlRm9ybWF0VGV4dCgpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVXaW4uY3BwCmluZGV4
IGI1N2YyMDFlZmU2NTMzODBkY2ZhMDQ0MDI5YjgxMWRlY2MyY2JhZDIuLjAxMDhlMGVlYTc2YTE2
NGE4NjJjZDc5ODc1NzQ1ZWE2YjRiNDg3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlV2luLmNwcApAQCAtNDAsMzQgKzQwLDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZG91YmxlIHBhcnNlTG9jYWxpemVkRGF0ZShjb25zdCBTdHJpbmcm
IGlucHV0LCBEYXRlQ29tcG9uZW50czo6VHlwZSB0eXBlKQogewotICAgIHN3aXRjaCAodHlwZSkg
ewotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGU6Ci0gICAgICAgIHJldHVybiBMb2NhbGVX
aW46OmN1cnJlbnRMb2NhbGUoKS0+cGFyc2VEYXRlKGlucHV0KTsKLSAgICBjYXNlIERhdGVDb21w
b25lbnRzOjpEYXRlVGltZToKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxvY2Fs
OgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRoOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVu
dHM6OlRpbWU6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6V2VlazoKLSAgICBjYXNlIERhdGVD
b21wb25lbnRzOjpJbnZhbGlkOgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIG51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgIHJldHVybiBMb2NhbGVXaW46
OmN1cnJlbnRMb2NhbGUoKS0+cGFyc2VEYXRlVGltZShpbnB1dCwgdHlwZSk7CiB9CiAKIFN0cmlu
ZyBmb3JtYXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50
cykKIHsKLSAgICBzd2l0Y2ggKGRhdGVDb21wb25lbnRzLnR5cGUoKSkgewotICAgIGNhc2UgRGF0
ZUNvbXBvbmVudHM6OkRhdGU6Ci0gICAgICAgIHJldHVybiBMb2NhbGVXaW46OmN1cnJlbnRMb2Nh
bGUoKS0+Zm9ybWF0RGF0ZShkYXRlQ29tcG9uZW50cyk7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50
czo6RGF0ZVRpbWU6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZVRpbWVMb2NhbDoKLSAg
ICBjYXNlIERhdGVDb21wb25lbnRzOjpNb250aDoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpU
aW1lOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OldlZWs6Ci0gICAgY2FzZSBEYXRlQ29tcG9u
ZW50czo6SW52YWxpZDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICByZXR1cm4gTG9jYWxlV2luOjpjdXJyZW50TG9jYWxlKCktPmZvcm1hdERhdGVUaW1l
KGRhdGVDb21wb25lbnRzKTsKIH0KIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAppbmRleCBjNTVkZDBjNzVmNWM0MTVh
MGZmM2ZiNTVjNTExZWNlMWQ4YzIxMmI0Li5lMzBiYzgwOGNkN2MxMGZiMjMwMjFmMTdiY2FiYTM5
MThiOTlkNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
aXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgTG9jYWxpemVyX2gKICNkZWZpbmUgTG9jYWxpemVyX2gK
IAorI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDggKzY4LDEzIEBAIHB1YmxpYzoK
IAogICAgIC8vIFRoZSBmaXJzdCBkYXkgb2YgYSB3ZWVrLiAwIGlzIFN1bmRheSwgYW5kIDYgaXMg
U2F0dXJkYXkuCiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXJzdERheU9mV2VlaygpID0gMDsKKwor
ICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgPSAwOwogI2VuZGlmCiAKKyAgICB2
aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRz
OjpUeXBlKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmKSA9IDA7CisKICAgICB2aXJ0dWFsIH5Mb2NhbGl6ZXIoKTsKIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAppbmRl
eCBmNmVlMTI3MTZkODUzYzliMjFhZjhjMzI2NzBjM2E1ZDRmMDVjMjQ4Li5mZjY0YzE5MWE5MTNh
NDUyZGRiYmFkMmQ2YWFhZjc4ZThhNzM0M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L21hYy9Mb2NhbGVNYWMuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc093blB0cjxMb2NhbGVNYWM+IGNyZWF0ZShOU0xvY2FsZSopOwogICAgIHN0YXRp
YyBMb2NhbGVNYWMqIGN1cnJlbnRMb2NhbGUoKTsKICAgICB+TG9jYWxlTWFjKCk7Ci0gICAgZG91
YmxlIHBhcnNlRGF0ZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZm9ybWF0RGF0ZShjb25z
dCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29u
c3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
U3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CiAK
ICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgp
OworICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5U2hvcnRMYWJlbHMoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KaW5kZXggNjhhMmRj
MzUwM2NlM2Y0ZmRhNTY1YWIxMzUzMDM4OTg0YTkwZmQ3NC4uZTI1ZGY3ZjQ0YTIzYjRiYWViYzU1
MWUyMDU2NGZlMzI1ZTBkNGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9tYWMvTG9jYWxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
bWFjL0xvY2FsZU1hYy5tbQpAQCAtMTE4LDggKzExOCwxMCBAQCBOU0RhdGVGb3JtYXR0ZXIqIExv
Y2FsZU1hYzo6Y3JlYXRlU2hvcnREYXRlRm9ybWF0dGVyKCkKICAgICByZXR1cm4gY3JlYXRlRGF0
ZVRpbWVGb3JtYXR0ZXIobV9sb2NhbGUuZ2V0KCksIE5TRGF0ZUZvcm1hdHRlclNob3J0U3R5bGUs
IE5TRGF0ZUZvcm1hdHRlck5vU3R5bGUpOwogfQogCi1kb3VibGUgTG9jYWxlTWFjOjpwYXJzZURh
dGUoY29uc3QgU3RyaW5nJiBpbnB1dCkKK2RvdWJsZSBMb2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUo
Y29uc3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKIHsKKyAgICBp
ZiAodHlwZSAhPSBEYXRlQ29tcG9uZW50czo6RGF0ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAgICAgUmV0YWluUHRyPE5TRGF0ZUZv
cm1hdHRlcj4gZm9ybWF0dGVyKEFkb3B0TlMsIGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRlcigpKTsK
ICAgICBOU0RhdGUgKmRhdGUgPSBbZm9ybWF0dGVyLmdldCgpIGRhdGVGcm9tU3RyaW5nOmlucHV0
XTsKICAgICBpZiAoIWRhdGUpCkBAIC0xMjcsOCArMTI5LDEwIEBAIGRvdWJsZSBMb2NhbGVNYWM6
OnBhcnNlRGF0ZShjb25zdCBTdHJpbmcmIGlucHV0KQogICAgIHJldHVybiBbZGF0ZSB0aW1lSW50
ZXJ2YWxTaW5jZTE5NzBdICogbXNQZXJTZWNvbmQ7CiB9CiAKLVN0cmluZyBMb2NhbGVNYWM6OmZv
cm1hdERhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExv
Y2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25l
bnRzKQogeworICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6
OkRhdGUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBSZXRhaW5QdHI8TlNEYXRlRm9y
bWF0dGVyPiBmb3JtYXR0ZXIoQWRvcHROUywgY3JlYXRlU2hvcnREYXRlRm9ybWF0dGVyKCkpOwog
ICAgIE5TVGltZUludGVydmFsIGludGVydmFsID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRz
U2luY2VFcG9jaCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAgcmV0dXJuIFN0cmluZyhbZm9ybWF0dGVy
LmdldCgpIHN0cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5
NzA6aW50ZXJ2YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGl6ZWREYXRlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
bWFjL0xvY2FsaXplZERhdGVNYWMuY3BwCmluZGV4IGViZWFlNWFhNDY0ZjdmNGE0MTgwMTdkZTUz
YTZjYmUzZTcyNTRjZmIuLmJiY2Q5YWMxNWMyODk2NDk1NmU5ZjAyNGZiMmE5ZjM4Zjc2Yjg0ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXplZERh
dGVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXpl
ZERhdGVNYWMuY3BwCkBAIC00MCwzNCArNDAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBk
b3VibGUgcGFyc2VMb2NhbGl6ZWREYXRlKGNvbnN0IFN0cmluZyYgaW5wdXQsIERhdGVDb21wb25l
bnRzOjpUeXBlIHR5cGUpCiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBEYXRlQ29t
cG9uZW50czo6RGF0ZToKLSAgICAgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgp
LT5wYXJzZURhdGUoaW5wdXQpOwotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lOgot
ICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lTG9jYWw6Ci0gICAgY2FzZSBEYXRlQ29t
cG9uZW50czo6TW9udGg6Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6VGltZToKLSAgICBjYXNl
IERhdGVDb21wb25lbnRzOjpXZWVrOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkludmFsaWQ6
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCk7CisgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgpLT5w
YXJzZURhdGVUaW1lKGlucHV0LCB0eXBlKTsKIH0KIAogU3RyaW5nIGZvcm1hdExvY2FsaXplZERh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogewotICAgIHN3aXRjaCAo
ZGF0ZUNvbXBvbmVudHMudHlwZSgpKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZToK
LSAgICAgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3VycmVudExvY2FsZSgpLT5mb3JtYXREYXRlKGRh
dGVDb21wb25lbnRzKTsKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZToKLSAgICBj
YXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxvY2FsOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVu
dHM6Ok1vbnRoOgotICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OlRpbWU6Ci0gICAgY2FzZSBEYXRl
Q29tcG9uZW50czo6V2VlazoKLSAgICBjYXNlIERhdGVDb21wb25lbnRzOjpJbnZhbGlkOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBMb2Nh
bGVNYWM6OmN1cnJlbnRMb2NhbGUoKS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMpOwog
fQogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCmluZGV4IDViYjdkMjFkMjliOTYzZWE4MDRkYTRh
MDE3ZDU0YjA1NTMzYjNiZjcuLmY1ZjI2OGRiMzViMDgzMTE2ZmJjMGM2N2U3NmI2MjI0NGQzOGIy
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNw
cApAQCAtNjUsMTMgKzY1LDEzIEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgZm9ybWF0RGF0ZShj
b25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkK
ICAgICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3Jl
YXRlKGxvY2FsZVN0cmluZyk7Ci0gICAgICAgIHJldHVybiBsb2NhbGUtPmZvcm1hdERhdGUoZGF0
ZUNvbXBvbmVudHMoeWVhciwgbW9udGgsIGRheSkpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5m
b3JtYXREYXRlVGltZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5KSk7CiAgICAgfQog
CiAgICAgZG91YmxlIHBhcnNlRGF0ZShjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgY29uc3Qg
U3RyaW5nJiBkYXRlU3RyaW5nKQogICAgIHsKICAgICAgICAgT3duUHRyPExvY2FsZU1hYz4gbG9j
YWxlID0gTG9jYWxlTWFjOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIGxv
Y2FsZS0+cGFyc2VEYXRlKGRhdGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5wYXJz
ZURhdGVUaW1lKGRhdGVTdHJpbmcsIERhdGVDb21wb25lbnRzOjpEYXRlKTsKICAgICB9CiAKICNp
ZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTG9jYWxlV2luVGVzdC5jcHAKaW5kZXggNjlhZDlhNGY3NmI1ZWNmMGNmNmIwYzY0NzI2OGI2
ZDA5ZTk0OTY0ZC4uZDIyM2Y2YjliYWNlMmQ4ZTM2ZDg0YjhmMzVjNTkwYTAwZDViMzU1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCkBAIC04
NywxMyArODcsMTMgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBmb3JtYXREYXRlKExDSUQgbGNp
ZCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKICAgICB7CiAgICAgICAgIE93blB0cjxM
b2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOwotICAgICAgICByZXR1
cm4gbG9jYWxlLT5mb3JtYXREYXRlKGRhdGVDb21wb25lbnRzKHllYXIsIG1vbnRoLCBkYXkpKTsK
KyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMoeWVh
ciwgbW9udGgsIGRheSkpOwogICAgIH0KIAogICAgIGRvdWJsZSBwYXJzZURhdGUoTENJRCBsY2lk
LCBjb25zdCBTdHJpbmcmIGRhdGVTdHJpbmcpCiAgICAgewogICAgICAgICBPd25QdHI8TG9jYWxl
V2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKLSAgICAgICAgcmV0dXJuIGxv
Y2FsZS0+cGFyc2VEYXRlKGRhdGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5wYXJz
ZURhdGVUaW1lKGRhdGVTdHJpbmcsIERhdGVDb21wb25lbnRzOjpEYXRlKTsKICAgICB9CiAKICNp
ZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQo=
</data>
<flag name="review"
          id="178470"
          type_id="1"
          status="+"
          setter="haraken"
    />
    <flag name="commit-queue"
          id="178541"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>