<?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>34209</bug_id>
          
          <creation_ts>2010-01-27 02:44:53 -0800</creation_ts>
          <short_desc>rangeOverflow/rangeUnderflow support for type=date</short_desc>
          <delta_ts>2010-01-27 23:33:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29070</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185012</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-27 02:44:53 -0800</bug_when>
    <thetext>rangeOverflow/rangeUnderflow flags of ValidityState support for &lt;input type=date&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185013</commentid>
    <comment_count>1</comment_count>
      <attachid>47513</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-27 02:55:39 -0800</bug_when>
    <thetext>Created attachment 47513
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185253</commentid>
    <comment_count>2</comment_count>
      <attachid>47513</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-27 15:47:04 -0800</bug_when>
    <thetext>Comment on attachment 47513
Proposed patch

&gt; +    // Parses the src for the current type, and return the double
&gt; +    // value for the parsing result if the parsing succeeds; Returns
&gt; +    // defaultValue otherwise. This function can return NaN or
&gt; +    // Infinity only if defaultValue is NaN or Infinity.
&gt; +    double doubleValueFor(const String&amp; src, double defaultValue) const;

If you think that the argument name is really needed, then please use the word &quot;source&quot; instead of the abbreviation &quot;src&quot;. I think you can omit the argument name.

Might be nicer if this function name made it clearer it was a string parser. I&apos;m not sure &quot;double value for &lt;xxx&gt;&quot; implies parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185348</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-27 23:33:30 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; If you think that the argument name is really needed, then please use the word
&gt; &quot;source&quot; instead of the abbreviation &quot;src&quot;. I think you can omit the argument
&gt; name.

I removed &quot;src&quot; and changed the wording.

&gt; Might be nicer if this function name made it clearer it was a string parser.
&gt; I&apos;m not sure &quot;double value for &lt;xxx&gt;&quot; implies parsing.

Renamed to parseToDouble().

Landed as r53975.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47513</attachid>
            <date>2010-01-27 02:55:39 -0800</date>
            <delta_ts>2010-01-27 15:47:03 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-34209-20100127195537.patch</filename>
            <type>text/plain</type>
            <size>19416</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZGE2OWZiLi45OGI3ZGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEt
MjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHJhbmdlT3ZlcmZsb3cvcmFuZ2VVbmRlcmZs
b3cgc3VwcG9ydCBmb3IgdHlwZT1kYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDIwOQorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlT3ZlcmZsb3ctZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LWRhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LWRhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctZGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctZGF0ZS5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1kYXRlLmpzOiBBZGRlZC4KKwogMjAxMC0wMS0yNiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93
LWRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2YwZjgwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKK1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZs
YWcgd2l0aCB0eXBlPWRhdGUgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFRoZSB2YWx1ZSAiMjAxMC0wMS0yNyIgZG9lc24ndCBvdmVyZmxvdyB0aGUg
bWF4aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICIyMDEwLTAxLTI3IiBkb2Vzbid0IG92
ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjIwMTAtMDEtMjci
IGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgImZvbyIuCitQQVNTIFRoZSB2YWx1
ZSAiMjAxMC0wMS0yNyIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMjAxMC0w
MS0yNyIuCitQQVNTIFRoZSB2YWx1ZSAiMjAxMC0wMS0yNyIgZG9lc24ndCBvdmVyZmxvdyB0aGUg
bWF4aW11bSB2YWx1ZSAiMjAxMC0wMS0yOCIuCitQQVNTIFRoZSB2YWx1ZSAiMjAxMC0wMS0yNyIg
ZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMjAxMS0wMS0yNiIuCitQQVNTIFRo
ZSB2YWx1ZSAiZm9vIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIyMDExLTAx
LTI2Ii4KK1BBU1MgVGhlIHZhbHVlICIyMDEwLTAxLTI3IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBt
YXhpbXVtIHZhbHVlICIxMDAwLTAxLTAxIi4KK1BBU1MgVGhlIHZhbHVlICIyMDEwLTAxLTI3IiBv
dmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjIwMTAtMDEtMjYiLgorUEFTUyBUaGUgdmFsdWUg
Ijk5OTktMDEtMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMjAxMC0xMi0zMSIuCitQ
QVNTIFRoZSB2YWx1ZSAiMjAxMC0wMS0yNyIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIy
MDEwLTAxLTI2Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VPdmVyZmxvdy1kYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1kYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2ZiOWUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LWRhdGUuaHRtbApAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctZGF0ZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1kYXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1kYXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDI3Y2E5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlVW5kZXJmbG93LWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMg
dGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlwZT1kYXRl
IGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUg
dmFsdWUgIjIwMTAtMDEtMjciIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIi
LgorUEFTUyBUaGUgdmFsdWUgIjIwMTAtMDEtMjciIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5p
bXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjIwMTAtMDEtMjciIGRvZXNuJ3QgdW5kZXJm
bG93IHRoZSBtaW5pbXVtIHZhbHVlICJmb28iLgorUEFTUyBUaGUgdmFsdWUgIjEwMDAtMDEtMDEi
IGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUg
IjE1ODItMTAtMTUiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIiLgorUEFT
UyBUaGUgdmFsdWUgIjIwMTAtMDEtMjciIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZh
bHVlICIyMDEwLTAxLTI2Ii4KK1BBU1MgVGhlIHZhbHVlICIyMDEwLTAxLTI3IiBkb2Vzbid0IHVu
ZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMjAwOS0wMS0yOCIuCitQQVNTIFRoZSB2YWx1ZSAi
Zm9vIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMjAxMS0wMS0yNiIuCitQ
QVNTIFRoZSB2YWx1ZSAiMjAxMC0wMS0yNyIgdW5kZWZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIy
MDEwLTAxLTI4Ii4KK1BBU1MgVGhlIHZhbHVlICI5OTk5LTAxLTAxIiB1bmRlZmxvd3MgdGhlIG1p
bmltdW0gdmFsdWUgIjEwMDAwLTEyLTMxIi4KK1BBU1MgVGhlIHZhbHVlICIyMDEwLTAxLTI3IiB1
bmRlZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjIwMTAtMDItMDEiLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1kYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctZGF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiOTBjYjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctZGF0ZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VVbmRlcmZsb3ctZGF0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1kYXRlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LWRhdGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZkNDZmMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VP
dmVyZmxvdy1kYXRlLmpzCkBAIC0wLDAgKzEsNTAgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3Qg
YWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1kYXRlIGlucHV0
IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
OworaW5wdXQudHlwZSA9ICdkYXRlJzsKKworZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyh2YWx1ZSwg
bWF4KQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWF4ID0gbWF4Owor
ICAgIHZhciBvdmVyZmxvdyA9IGlucHV0LnZhbGlkaXR5LnJhbmdlT3ZlcmZsb3c7CisgICAgdmFy
IHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsKKyAgICAg
ICAgKG92ZXJmbG93ID8gJ292ZXJmbG93cycgOiAnZG9lc25cJ3Qgb3ZlcmZsb3cnKSArCisgICAg
ICAgICcgdGhlIG1heGltdW0gdmFsdWUgIicgKyBpbnB1dC5tYXggKyAnIi4nOworICAgIGlmIChv
dmVyZmxvdykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrTm90T3ZlcmZs
b3codmFsdWUsIG1heCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1h
eCA9IG1heDsKKyAgICB2YXIgb3ZlcmZsb3cgPSBpbnB1dC52YWxpZGl0eS5yYW5nZU92ZXJmbG93
OworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIg
JyArCisgICAgICAgIChvdmVyZmxvdyA/ICdvdmVyZmxvd3MnIDogJ2RvZXNuXCd0IG92ZXJmbG93
JykgKworICAgICAgICAnIHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5wdXQubWF4ICsgJyIuJzsK
KyAgICBpZiAob3ZlcmZsb3cpCisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworfQorCisvLyBObyBvdmVyZmxv
dyBjYXNlcworY2hlY2tOb3RPdmVyZmxvdygnMjAxMC0wMS0yNycsIG51bGwpOworY2hlY2tOb3RP
dmVyZmxvdygnMjAxMC0wMS0yNycsICcnKTsKK2NoZWNrTm90T3ZlcmZsb3coJzIwMTAtMDEtMjcn
LCAnZm9vJyk7CitjaGVja05vdE92ZXJmbG93KCcyMDEwLTAxLTI3JywgJzIwMTAtMDEtMjcnKTsK
K2NoZWNrTm90T3ZlcmZsb3coJzIwMTAtMDEtMjcnLCAnMjAxMC0wMS0yOCcpOworY2hlY2tOb3RP
dmVyZmxvdygnMjAxMC0wMS0yNycsICcyMDExLTAxLTI2Jyk7CitjaGVja05vdE92ZXJmbG93KCdm
b28nLCAnMjAxMS0wMS0yNicpOworY2hlY2tOb3RPdmVyZmxvdygnMjAxMC0wMS0yNycsICcxMDAw
LTAxLTAxJyk7IC8vIFRvbyBzbWFsbCBtYXggdmFsdWUuCisKKy8vIE92ZXJmbG93IGNhc2VzCitj
aGVja092ZXJmbG93KCcyMDEwLTAxLTI3JywgJzIwMTAtMDEtMjYnKTsKK2NoZWNrT3ZlcmZsb3co
Jzk5OTktMDEtMDEnLCAnMjAxMC0xMi0zMScpOworaW5wdXQubWluID0gJzIwMTAtMDEtMjgnOyAg
Ly8gdmFsdWUgPCBtaW4gJiYgdmFsdWUgPiBtYXgKK2NoZWNrT3ZlcmZsb3coJzIwMTAtMDEtMjcn
LCAnMjAxMC0wMS0yNicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VVbmRlcmZsb3ctZGF0ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctZGF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wNjM0NGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1k
YXRlLmpzCkBAIC0wLDAgKzEsNTIgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBj
aGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9ZGF0ZSBpbnB1dCBmaWVsZHMn
KTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0
LnR5cGUgPSAnZGF0ZSc7CisKK2Z1bmN0aW9uIGNoZWNrVW5kZXJmbG93KHZhbHVlLCBtaW4pCit7
CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47CisgICAgdmFy
IHVuZGVyZmxvdyA9IGlucHV0LnZhbGlkaXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZhciByZXN1
bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIgJyArCisgICAgICAgICh1
bmRlcmZsb3cgPyAndW5kZWZsb3dzJyA6ICdkb2VzblwndCB1bmRlcmZsb3cnKSArCisgICAgICAg
ICcgdGhlIG1pbmltdW0gdmFsdWUgIicgKyBpbnB1dC5taW4gKyAnIi4nOworICAgIGlmICh1bmRl
cmZsb3cpCisgICAgICAgIHRlc3RQYXNzZWQocmVzdWx0VGV4dCk7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQorCitmdW5jdGlvbiBjaGVja05vdFVuZGVyZmxv
dyh2YWx1ZSwgbWluKQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWlu
ID0gbWluOworICAgIHZhciB1bmRlcmZsb3cgPSBpbnB1dC52YWxpZGl0eS5yYW5nZVVuZGVyZmxv
dzsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUgdmFsdWUgIicgKyBpbnB1dC52YWx1ZSArICci
ICcgKworICAgICAgICAodW5kZXJmbG93ID8gJ3VuZGVyZmxvd3MnIDogJ2RvZXNuXCd0IHVuZGVy
ZmxvdycpICsKKyAgICAgICAgJyB0aGUgbWluaW11bSB2YWx1ZSAiJyArIGlucHV0Lm1pbiArICci
Lic7CisgICAgaWYgKHVuZGVyZmxvdykKKyAgICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5vIHVu
ZGVyZmxvdyBjYXNlcworY2hlY2tOb3RVbmRlcmZsb3coJzIwMTAtMDEtMjcnLCBudWxsKTsKK2No
ZWNrTm90VW5kZXJmbG93KCcyMDEwLTAxLTI3JywgJycpOworY2hlY2tOb3RVbmRlcmZsb3coJzIw
MTAtMDEtMjcnLCAnZm9vJyk7CisvLyAxMDAwLTAxLTAxIGlzIHNtYWxsZXIgdGhhbiB0aGUgaW1w
bGljaXQgbWluaW11bSB2YWx1ZS4KKy8vIEJ1dCB0aGUgZGF0ZSBwYXJzZXIgcmVqZWN0cyBpdCBi
ZWZvcmUgY29tcGFyaW5nIHRoZSBtaW5pbXVtIHZhbHVlLgorY2hlY2tOb3RVbmRlcmZsb3coJzEw
MDAtMDEtMDEnLCAnJyk7CitjaGVja05vdFVuZGVyZmxvdygnMTU4Mi0xMC0xNScsICcnKTsKK2No
ZWNrTm90VW5kZXJmbG93KCcyMDEwLTAxLTI3JywgJzIwMTAtMDEtMjYnKTsKK2NoZWNrTm90VW5k
ZXJmbG93KCcyMDEwLTAxLTI3JywgJzIwMDktMDEtMjgnKTsKK2NoZWNrTm90VW5kZXJmbG93KCdm
b28nLCAnMjAxMS0wMS0yNicpOworCisvLyBVbmRlcmZsb3cgY2FzZXMKK2NoZWNrVW5kZXJmbG93
KCcyMDEwLTAxLTI3JywgJzIwMTAtMDEtMjgnKTsKK2NoZWNrVW5kZXJmbG93KCc5OTk5LTAxLTAx
JywgJzEwMDAwLTEyLTMxJyk7CitpbnB1dC5tYXggPSAnMjAxMC0wMS0wMSc7ICAvLyB2YWx1ZSA8
IG1pbiAmJiB2YWx1ZSA+IG1heAorY2hlY2tVbmRlcmZsb3coJzIwMTAtMDEtMjcnLCAnMjAxMC0w
Mi0wMScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlOTM1ZS4uMTYwYWI0
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxMC0wMS0yNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
cmFuZ2VPdmVyZmxvdy9yYW5nZVVuZGVyZmxvdyBzdXBwb3J0IGZvciB0eXBlPWRhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjA5CisKKyAgICAg
ICAgQWRkIERBVEUgdHlwZSBzdXBwb3J0IHRvIHJhbmdlVW5kZXJmbG93KCksIHJhbmdlT3ZlcmZs
b3coKSwKKyAgICAgICAgbWluaW11bSgpLCBhbmQgbWF4aW11bSgpIG9mIEhUTUxJbnB1dEVsZW1l
bnQuCisgICAgICAgIEluIG9yZGVyIHRvIHVuaWZ5IHBhcnNpbmcgY29kZSBmb3IgdmFsdWUsIG1p
biwgYW5kIG1heCBzdHJpbmdzLAorICAgICAgICBpbnRyb2R1Y2UgZG91YmxlVmFsdWVGb3IoKSBm
dW5jdGlvbiBhbmQgaXQgaXMgY2FsbGVkIGJ5CisgICAgICAgIHZhbHVlQXNEYXRlKCkgYW5kIHZh
bHVlQXNOdW1iZXIoKSB0b28uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS1yYW5nZU92ZXJmbG93LWRhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LWRhdGUuaHRtbAorCisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnJhbmdlVW5kZXJmbG93KTogU3VwcG9ydCBEQVRFIHR5cGUsIGFuZCB1c2UgZG91YmxlVmFsdWVG
b3IoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlT3ZlcmZsb3cp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1pbmltdW0pOiBk
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1heGltdW0pOiBkaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmRvdWJsZVZhbHVlRm9yKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSk6
IFVzZSBkb3VibGVWYWx1ZUZvcigpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dmFsdWVBc051bWJlcik6IFVzZSBkb3VibGVWYWx1ZUZvcigpLgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5oOiBEZWNsYXJlIGRvdWJsZVZhbHVlRm9yKCkuCisKIDIwMTAtMDEt
MjYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFRvciBBcm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYjYw
Y2RmZC4uN2Y1ZTMzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNzksOSArNzks
MTEgQEAgY29uc3QgaW50IG1heFNhdmVkUmVzdWx0cyA9IDI1NjsKIHN0YXRpYyBjb25zdCBkb3Vi
bGUgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxLjA7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlclN0
ZXBTY2FsZUZhY3RvciA9IDEuMDsKIC8vIENvbnN0YW50IHZhbHVlcyBmb3IgbWluaW11bSgpLgor
c3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlRGVmYXVsdE1pbmltdW0gPSAtMTIyMTkyOTI4MDAwMDAu
MDsgLy8gVGhpcyBtZWFucyAxNTgyLTEwLTE1VDAwOjAwWi4KIHN0YXRpYyBjb25zdCBkb3VibGUg
bnVtYmVyRGVmYXVsdE1pbmltdW0gPSAtREJMX01BWDsKIHN0YXRpYyBjb25zdCBkb3VibGUgcmFu
Z2VEZWZhdWx0TWluaW11bSA9IDAuMDsKIC8vIENvbnN0YW50IHZhbHVlcyBmb3IgbWF4aW11bSgp
Lgorc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlRGVmYXVsdE1heGltdW0gPSBEQkxfTUFYOwogc3Rh
dGljIGNvbnN0IGRvdWJsZSBudW1iZXJEZWZhdWx0TWF4aW11bSA9IERCTF9NQVg7CiBzdGF0aWMg
Y29uc3QgZG91YmxlIHJhbmdlRGVmYXVsdE1heGltdW0gPSAxMDAuMDsKIApAQCAtMjY2LDQ2ICsy
NjgsMTUzIEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6dG9vTG9uZygpIGNvbnN0CiAKIGJvb2wg
SFRNTElucHV0RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3coKSBjb25zdAogewotICAgIGlmIChpbnB1
dFR5cGUoKSA9PSBOVU1CRVIgfHwgaW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKLSAgICAgICAgZG91
YmxlIGRvdWJsZVZhbHVlOwotICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCks
ICZkb3VibGVWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBtaW5pbXVt
KCk7CisgICAgY29uc3QgZG91YmxlIG5hbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0
X05hTigpOworICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKKyAgICBjYXNlIERBVEU6CisgICAg
Y2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQU5HRTogeworICAgICAgICBkb3VibGUgZG91YmxlVmFs
dWUgPSBkb3VibGVWYWx1ZUZvcih2YWx1ZSgpLCBuYW4pOworICAgICAgICByZXR1cm4gaXNmaW5p
dGUoZG91YmxlVmFsdWUpICYmIGRvdWJsZVZhbHVlIDwgbWluaW11bSgpOworICAgIH0KKyAgICBj
YXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgQ09MT1I6CisgICAgY2Fz
ZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAg
ICBjYXNlIEZJTEU6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNl
IElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2Ug
UkFESU86CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFNVQk1J
VDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgor
ICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJmbG93
KCkgY29uc3QKIHsKLSAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSIHx8IGlucHV0VHlwZSgp
ID09IFJBTkdFKSB7Ci0gICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKLSAgICAgICAgaWYgKGZv
cm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQotICAgICAgICAgICAgcmV0
dXJuIGRvdWJsZVZhbHVlID4gbWF4aW11bSgpOworICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1l
cmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBzd2l0Y2ggKGlucHV0VHlwZSgp
KSB7CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUkFOR0U6IHsK
KyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gZG91YmxlVmFsdWVGb3IodmFsdWUoKSwgbmFu
KTsKKyAgICAgICAgcmV0dXJuIGlzZmluaXRlKGRvdWJsZVZhbHVlKSAmJiBkb3VibGVWYWx1ZSA+
ICBtYXhpbXVtKCk7CisgICAgfQorICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgQ0hFQ0tCT1g6
CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVM
T0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERFTjoK
KyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAg
IGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBSQURJTzoKKyAgICBjYXNlIFJFU0VUOgorICAgIGNh
c2UgU0VBUkNIOgorICAgIGNhc2UgU1VCTUlUOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNh
c2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgor
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBkb3VibGUgSFRN
TElucHV0RWxlbWVudDo6bWluaW11bSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlucHV0VHlwZSgp
ID09IE5VTUJFUiB8fCBpbnB1dFR5cGUoKSA9PSBSQU5HRSk7Ci0gICAgZG91YmxlIG1pbiA9IGlu
cHV0VHlwZSgpID09IFJBTkdFID8gcmFuZ2VEZWZhdWx0TWluaW11bSA6IG51bWJlckRlZmF1bHRN
aW5pbXVtOwotICAgIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksICZt
aW4pOwotICAgIHJldHVybiBtaW47CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgIGNh
c2UgREFURToKKyAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlRm9yKGdldEF0dHJpYnV0ZShtaW5B
dHRyKSwgZGF0ZURlZmF1bHRNaW5pbXVtKTsKKyAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgcmV0
dXJuIGRvdWJsZVZhbHVlRm9yKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgbnVtYmVyRGVmYXVsdE1p
bmltdW0pOworICAgIGNhc2UgUkFOR0U6CisgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZUZvcihn
ZXRBdHRyaWJ1dGUobWluQXR0ciksIHJhbmdlRGVmYXVsdE1pbmltdW0pOworICAgIGNhc2UgQlVU
VE9OOgorICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEVU
SU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2Ug
RklMRToKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRF
WDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBSQURJTzoK
KyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgU1VCTUlUOgorICAg
IGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2Fz
ZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGRvdWJsZSBIVE1MSW5wdXRFbGVt
ZW50OjptYXhpbXVtKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gTlVNQkVS
IHx8IGlucHV0VHlwZSgpID09IFJBTkdFKTsKLSAgICBkb3VibGUgZGVmYXVsdE1heGltdW0gPSBp
bnB1dFR5cGUoKSA9PSBSQU5HRSA/IHJhbmdlRGVmYXVsdE1heGltdW0gOiBudW1iZXJEZWZhdWx0
TWF4aW11bTsKLSAgICBkb3VibGUgbWF4ID0gZGVmYXVsdE1heGltdW07Ci0gICAgZm9ybVN0cmlu
Z1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1heCk7Ci0gICAgaWYgKGlucHV0VHlw
ZSgpID09IFJBTkdFKSB7CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgIGNhc2UgREFU
RToKKyAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlRm9yKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwg
ZGF0ZURlZmF1bHRNYXhpbXVtKTsKKyAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgcmV0dXJuIGRv
dWJsZVZhbHVlRm9yKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgbnVtYmVyRGVmYXVsdE1heGltdW0p
OworICAgIGNhc2UgUkFOR0U6IHsKKyAgICAgICAgZG91YmxlIG1heCA9IGRvdWJsZVZhbHVlRm9y
KGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgcmFuZ2VEZWZhdWx0TWF4aW11bSk7CiAgICAgICAgIC8v
IEEgcmVtZWR5IGZvciB0aGUgaW5jb25zaXN0ZW50IG1pbi9tYXggdmFsdWVzIGZvciBSQU5HRS4K
ICAgICAgICAgLy8gU2V0cyB0aGUgbWF4aW11bSB0byB0aGUgZGVmYXVsdCBvciB0aGUgbWluaW11
bSB2YWx1ZS4KICAgICAgICAgZG91YmxlIG1pbiA9IG1pbmltdW0oKTsKICAgICAgICAgaWYgKG1h
eCA8IG1pbikKLSAgICAgICAgICAgIG1heCA9IHN0ZDo6bWF4KG1pbiwgZGVmYXVsdE1heGltdW0p
OworICAgICAgICAgICAgbWF4ID0gc3RkOjptYXgobWluLCByYW5nZURlZmF1bHRNYXhpbXVtKTsK
KyAgICAgICAgcmV0dXJuIG1heDsKKyAgICB9CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBD
SEVDS0JPWDoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBE
QVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBGSUxFOgorICAgIGNhc2Ug
SElEREVOOgorICAgIGNhc2UgSU1BR0U6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgTU9O
VEg6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgUkVTRVQ6
CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgY2FzZSBURUxFUEhPTkU6
CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNl
IFdFRUs6CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gbWF4OworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwogfQogCiBkb3VibGUgSFRNTElucHV0RWxl
bWVudDo6c3RlcEJhc2UoKSBjb25zdApAQCAtMTM3NCwxOSArMTQ4Myw2MyBAQCB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2VuZENoYW5n
ZUV2ZW50KQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVt
ZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0Citkb3VibGUgSFRNTElucHV0RWxlbWVudDo6ZG91Ymxl
VmFsdWVGb3IoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewogICAgIGNhc2UgREFURToKICAgICBjYXNlIERB
VEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKICAgICBjYXNlIE1PTlRIOgogICAgIGNh
c2UgVElNRToKICAgICBjYXNlIFdFRUs6IHsKICAgICAgICAgSVNPRGF0ZVRpbWUgZGF0ZVRpbWU7
Ci0gICAgICAgIGlmICghZm9ybVN0cmluZ1RvSVNPRGF0ZVRpbWUoaW5wdXRUeXBlKCksIHZhbHVl
KCksICZkYXRlVGltZSkpCi0gICAgICAgICAgICByZXR1cm4gSVNPRGF0ZVRpbWU6OmludmFsaWRN
aWxsaXNlY29uZHMoKTsKLSAgICAgICAgcmV0dXJuIGRhdGVUaW1lLm1pbGxpc2Vjb25kc1NpbmNl
RXBvY2goKTsKKyAgICAgICAgaWYgKCFmb3JtU3RyaW5nVG9JU09EYXRlVGltZShpbnB1dFR5cGUo
KSwgc3JjLCAmZGF0ZVRpbWUpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAg
ICAgICAgZG91YmxlIG1zZWMgPSBkYXRlVGltZS5taWxsaXNlY29uZHNTaW5jZUVwb2NoKCk7Cisg
ICAgICAgIEFTU0VSVChpc2Zpbml0ZShtc2VjKSk7CisgICAgICAgIHJldHVybiBtc2VjOworICAg
IH0KKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFJBTkdFOiB7CisgICAgICAgIGRvdWJsZSBu
dW1iZXJWYWx1ZTsKKyAgICAgICAgaWYgKCFmb3JtU3RyaW5nVG9Eb3VibGUoc3JjLCAmbnVtYmVy
VmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgQVNTRVJU
KGlzZmluaXRlKG51bWJlclZhbHVlKSk7CisgICAgICAgIHJldHVybiBudW1iZXJWYWx1ZTsKICAg
ICB9CisKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgQ09M
T1I6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBISURERU46Cisg
ICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBQQVNTV09SRDoKKyAg
ICBjYXNlIFJBRElPOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2Fz
ZSBTVUJNSVQ6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2Ug
VVJMOgorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworfQorCitkb3VibGUgSFRNTElu
cHV0RWxlbWVudDo6dmFsdWVBc0RhdGUoKSBjb25zdAoreworICAgIHN3aXRjaCAoaW5wdXRUeXBl
KCkpIHsKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIE1PTlRI
OgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJldHVybiBkb3VibGVW
YWx1ZUZvcih2YWx1ZSgpLCBJU09EYXRlVGltZTo6aW52YWxpZE1pbGxpc2Vjb25kcygpKTsKKwog
ICAgIGNhc2UgQlVUVE9OOgogICAgIGNhc2UgQ0hFQ0tCT1g6CiAgICAgY2FzZSBDT0xPUjoKQEAg
LTE0NzQsMjAgKzE2MjcsMTEgQEAgZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNOdW1i
ZXIoKSBjb25zdAogICAgIGNhc2UgREFURToKICAgICBjYXNlIERBVEVUSU1FOgogICAgIGNhc2Ug
TU9OVEg6Ci0gICAgY2FzZSBUSU1FOgotICAgIGNhc2UgV0VFSzogewotICAgICAgICBJU09EYXRl
VGltZSBkYXRlVGltZTsKLSAgICAgICAgaWYgKCFmb3JtU3RyaW5nVG9JU09EYXRlVGltZShpbnB1
dFR5cGUoKSwgdmFsdWUoKSwgJmRhdGVUaW1lKSkKLSAgICAgICAgICAgIHJldHVybiBuYW47Ci0g
ICAgICAgIHJldHVybiBkYXRlVGltZS5taWxsaXNlY29uZHNTaW5jZUVwb2NoKCk7Ci0gICAgfQog
ICAgIGNhc2UgTlVNQkVSOgotICAgIGNhc2UgUkFOR0U6IHsKLSAgICAgICAgZG91YmxlIG51bWJl
clZhbHVlOwotICAgICAgICBpZiAoIWZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmbnVtYmVy
VmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIG5hbjsKLSAgICAgICAgcmV0dXJuIG51bWJlclZh
bHVlOwotICAgIH0KKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdF
RUs6CisgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZUZvcih2YWx1ZSgpLCBuYW4pOwogCiAgICAg
Y2FzZSBCVVRUT046CiAgICAgY2FzZSBDSEVDS0JPWDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmlu
ZGV4IDJjZDA4YzkuLjhmNjkyZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTA2LDkg
KzEwNiw5IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZQogICAgIGJvb2wgcmFu
Z2VVbmRlcmZsb3coKSBjb25zdDsKICAgICBib29sIHJhbmdlT3ZlcmZsb3coKSBjb25zdDsKLSAg
ICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0eXBlPW51bWJlciBvciByYW5nZS4g
IERvbid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCisgICAgLy8gUmV0dXJucyB0aGUgbWlu
aW11bSB2YWx1ZSBmb3IgdHlwZT1kYXRlLCBudW1iZXIsIG9yIHJhbmdlLiAgRG9uJ3QgY2FsbCB0
aGlzIGZvciBvdGhlciB0eXBlcy4KICAgICBkb3VibGUgbWluaW11bSgpIGNvbnN0OwotICAgIC8v
IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUgZm9yIHR5cGU9bnVtYmVyIG9yIHJhbmdlLiAgRG9u
J3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVt
IHZhbHVlIGZvciB0eXBlPWRhdGUsIG51bWJlciwgb3IgcmFuZ2UuICBEb24ndCBjYWxsIHRoaXMg
Zm9yIG90aGVyIHR5cGVzLgogICAgIC8vIFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1ZSB3aGlj
aCBpcyA+PSBtaW5pbXVtKCkuCiAgICAgZG91YmxlIG1heGltdW0oKSBjb25zdDsKICAgICAvLyBT
ZXRzIHRoZSAiYWxsb3dlZCB2YWx1ZSBzdGVwIiBkZWZpbmVkIGluIHRoZSBIVE1MIHNwZWMgdG8g
dGhlIHNwZWNpZmllZCBkb3VibGUgcG9pbnRlci4KQEAgLTMwMCw2ICszMDAsMTIgQEAgcHJpdmF0
ZToKICAgICAvLyBIZWxwZXIgZm9yIGFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoKS4KICAgICBk
b3VibGUgc3RlcEJhc2UoKSBjb25zdDsKIAorICAgIC8vIFBhcnNlcyB0aGUgc3JjIGZvciB0aGUg
Y3VycmVudCB0eXBlLCBhbmQgcmV0dXJuIHRoZSBkb3VibGUKKyAgICAvLyB2YWx1ZSBmb3IgdGhl
IHBhcnNpbmcgcmVzdWx0IGlmIHRoZSBwYXJzaW5nIHN1Y2NlZWRzOyBSZXR1cm5zCisgICAgLy8g
ZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4gVGhpcyBmdW5jdGlvbiBjYW4gcmV0dXJuIE5hTiBvcgor
ICAgIC8vIEluZmluaXR5IG9ubHkgaWYgZGVmYXVsdFZhbHVlIGlzIE5hTiBvciBJbmZpbml0eS4K
KyAgICBkb3VibGUgZG91YmxlVmFsdWVGb3IoY29uc3QgU3RyaW5nJiBzcmMsIGRvdWJsZSBkZWZh
dWx0VmFsdWUpIGNvbnN0OworCiAjaWYgRU5BQkxFKERBVEFMSVNUKQogICAgIEhUTUxEYXRhTGlz
dEVsZW1lbnQqIGRhdGFMaXN0KCkgY29uc3Q7CiAjZW5kaWYK
</data>
<flag name="review"
          id="29963"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>