<?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>185210</bug_id>
          
          <creation_ts>2018-05-02 12:30:42 -0700</creation_ts>
          <short_desc>Use RetainPtr for form input type</short_desc>
          <delta_ts>2018-05-30 12:23:42 -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>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>186096</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419783</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 12:30:42 -0700</bug_when>
    <thetext>Switch the InputType of the HTMLInputElement from std::unique_ptr&lt;&gt; to a RefPtr&lt;&gt;, since we sometimes want to hold a temporary reference to the value (i.e., it&apos;s not truly a unique_ptr), and the current implementation makes this impossible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419784</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 12:31:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/39734040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419808</commentid>
    <comment_count>2</comment_count>
      <attachid>339328</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 13:12:58 -0700</bug_when>
    <thetext>Created attachment 339328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419854</commentid>
    <comment_count>3</comment_count>
      <attachid>339328</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-02 14:20:49 -0700</bug_when>
    <thetext>Comment on attachment 339328
Patch

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

&gt; Source/WebCore/html/HTMLInputElement.cpp:130
&gt; -    , m_inputType(createdByParser ? nullptr : InputType::createText(*this))
&gt; +    , m_inputType(createdByParser ? RefPtr&lt;InputType&gt;() : InputType::createText(*this))

We can&apos;t use nullptr here!?
Alternatively, you can just assign in the constructor body instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419925</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 16:49:42 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Comment on attachment 339328 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339328&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLInputElement.cpp:130
&gt; &gt; -    , m_inputType(createdByParser ? nullptr : InputType::createText(*this))
&gt; &gt; +    , m_inputType(createdByParser ? RefPtr&lt;InputType&gt;() : InputType::createText(*this))
&gt; 
&gt; We can&apos;t use nullptr here!?
&gt; Alternatively, you can just assign in the constructor body instead.

Yeah -- the type difference between nullptr_t and RefPtr&lt;InputType&gt; makes the compiler angry.

I&apos;ll do the assignment in the constructor body as you suggest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419969</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 18:09:00 -0700</bug_when>
    <thetext>Committed r231291: &lt;https://trac.webkit.org/changeset/231291&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428015</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-05-28 22:59:20 -0700</bug_when>
    <thetext>I’m really concerned about the safety of this change. While it makes it safer to access an InputType by extending the lifetime of the InputType itself as needed when someone uses a RefPtr for the InputType object, in those same cases, the reference back from the InputType to the HTMLInputElement is no longer safe. That reference can now point to a deallocated HTMLInputElement, and will in the very same cases that where the InputType object would have been deallocated before.

Specifically this comment is now false:

    // Raw pointer because the HTMLInputElement object owns this InputType object.
    HTMLInputElement&amp; m_element;

HTMLInputElement is no longer the sole owner of the InputType object.

Anywhere we hold a &quot;temporary reference&quot; to an InputType is still unsafe if that InputType makes any use of m_element, unless the code also holds a &quot;temporary reference&quot; to the input element as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428077</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-29 09:04:48 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; I’m really concerned about the safety of this change. While it makes it
&gt; safer to access an InputType by extending the lifetime of the InputType
&gt; itself as needed when someone uses a RefPtr for the InputType object, in
&gt; those same cases, the reference back from the InputType to the
&gt; HTMLInputElement is no longer safe. That reference can now point to a
&gt; deallocated HTMLInputElement, and will in the very same cases that where the
&gt; InputType object would have been deallocated before.
&gt; 
&gt; Specifically this comment is now false:
&gt; 
&gt;     // Raw pointer because the HTMLInputElement object owns this InputType
&gt; object.
&gt;     HTMLInputElement&amp; m_element;
&gt; 
&gt; HTMLInputElement is no longer the sole owner of the InputType object.
&gt; 
&gt; Anywhere we hold a &quot;temporary reference&quot; to an InputType is still unsafe if
&gt; that InputType makes any use of m_element, unless the code also holds a
&gt; &quot;temporary reference&quot; to the input element as well.

That&apos;s a good point. This should probably be a WeakPtr to avoid the situation you describe. Could you file a Bugzilla to do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428180</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-29 13:13:23 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; (In reply to Darin Adler from comment #6)
&gt; &gt; I’m really concerned about the safety of this change. While it makes it
&gt; &gt; safer to access an InputType by extending the lifetime of the InputType
&gt; &gt; itself as needed when someone uses a RefPtr for the InputType object, in
&gt; &gt; those same cases, the reference back from the InputType to the
&gt; &gt; HTMLInputElement is no longer safe. That reference can now point to a
&gt; &gt; deallocated HTMLInputElement, and will in the very same cases that where the
&gt; &gt; InputType object would have been deallocated before.
&gt; &gt; 
&gt; &gt; Specifically this comment is now false:
&gt; &gt; 
&gt; &gt;     // Raw pointer because the HTMLInputElement object owns this InputType
&gt; &gt; object.
&gt; &gt;     HTMLInputElement&amp; m_element;
&gt; &gt; 
&gt; &gt; HTMLInputElement is no longer the sole owner of the InputType object.
&gt; &gt; 
&gt; &gt; Anywhere we hold a &quot;temporary reference&quot; to an InputType is still unsafe if
&gt; &gt; that InputType makes any use of m_element, unless the code also holds a
&gt; &gt; &quot;temporary reference&quot; to the input element as well.
&gt; 
&gt; That&apos;s a good point. This should probably be a WeakPtr to avoid the
&gt; situation you describe. Could you file a Bugzilla to do that?

If you&apos;re going to change that to use WeakPtr. Please be sure to perf-test it prior to landing. I&apos;d expect it to be a Speedometer regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428351</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-05-29 21:37:30 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Could you file a Bugzilla to do that?

I’m not sure why you’re asking me to file the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428541</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-30 12:23:42 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; (In reply to Brent Fulgham from comment #7)
&gt; &gt; Could you file a Bugzilla to do that?
&gt; 
&gt; I’m not sure why you’re asking me to file the bug.

I filed it (Bug 186096). Maybe you can take a look when you get a chance. I&apos;m still validating to see if I broke anything with that change, and I&apos;ll need to run perf tests before completing the work, but I&apos;d appreciate your input on the direction of the change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339328</attachid>
            <date>2018-05-02 13:12:58 -0700</date>
            <delta_ts>2018-05-02 14:20:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185210-20180502131257.patch</filename>
            <type>text/plain</type>
            <size>11438</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWViYTE4MWViMTM1MDFm
MWQ2MTlhY2YxZTk1Y2JjOTU4OTgyMTYzNy4uYmMyYTZjZDZhODA3YjdhNjRjMDZiMzM5OTY4ODM1
MmU2MzNlOGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA1LTAyICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBSZXRhaW5QdHIg
Zm9yIGZvcm0gaW5wdXQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg1MjEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTczNDA0MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBv
dXIgSFRNTElucHV0RWxlbWVudCBjbGFzcyB0byBzdG9yZSBpdHMgSW5wdXRUeXBlIG1lbWJlciBh
cyBhIFJlZlB0ci4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL2FjY2Vzcy1rZXktbXV0YXRp
b24tMi5odG1sLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEpOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0
ZVRleHQpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisKIDIwMTgtMDUtMDEgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJldmVudCBEZWJ1ZyBB
U1NFUlQgd2hlbiBjaGFuZ2luZyBmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggN2FhNzFiMmM0NDYxYzUwZGEwZjM3NWEzNzc5OWEzNDI2Njc2Y2UxZi4u
NDI5ZTBlY2RmNTBiMmEwYzNkMGFlYTFlNzU0MzcyZmNkYTE4MzhiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgY29uc3QgaW50
IG1heFNhdmVkUmVzdWx0cyA9IDI1NjsKIEhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3NpemUo
ZGVmYXVsdFNpemUpCi0gICAgLCBtX21heFJlc3VsdHMoLTEpCiAgICAgLCBtX2lzQ2hlY2tlZChm
YWxzZSkKICAgICAsIG1fcmVmbGVjdHNDaGVja2VkQXR0cmlidXRlKHRydWUpCiAgICAgLCBtX2lz
SW5kZXRlcm1pbmF0ZShmYWxzZSkKQEAgLTEyOCw3ICsxMjcsNyBAQCBIVE1MSW5wdXRFbGVtZW50
OjpIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bQogICAgICwgbV9pc1NwZWxsY2hlY2tEaXNhYmxlZEV4Y2VwdFRleHRSZXBsYWNlbWVu
dChmYWxzZSkKICAgICAvLyBtX2lucHV0VHlwZSBpcyBsYXppbHkgY3JlYXRlZCB3aGVuIGNvbnN0
cnVjdGVkIGJ5IHRoZSBwYXJzZXIgdG8gYXZvaWQgY29uc3RydWN0aW5nIHVubmVjZXNzYXJpbHkg
YSB0ZXh0IGlucHV0VHlwZSBhbmQKICAgICAvLyBpdHMgc2hhZG93IHN1YnRyZWUsIGp1c3QgdG8g
ZGVzdHJveSB0aGVtIHdoZW4gdGhlIHx0eXBlfCBhdHRyaWJ1dGUgZ2V0cyBzZXQgYnkgdGhlIHBh
cnNlciB0byBzb21ldGhpbmcgZWxzZSB0aGFuICd0ZXh0Jy4KLSAgICAsIG1faW5wdXRUeXBlKGNy
ZWF0ZWRCeVBhcnNlciA/IG51bGxwdHIgOiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoKnRoaXMpKQor
ICAgICwgbV9pbnB1dFR5cGUoY3JlYXRlZEJ5UGFyc2VyID8gUmVmUHRyPElucHV0VHlwZT4oKSA6
IElucHV0VHlwZTo6Y3JlYXRlVGV4dCgqdGhpcykpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
aW5wdXRUYWcpKTsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKQEAg
LTE1Miw3ICsxNTEsOCBAQCBIVE1MSW1hZ2VMb2FkZXImIEhUTUxJbnB1dEVsZW1lbnQ6OmVuc3Vy
ZUltYWdlTG9hZGVyKCkKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRT
aGFkb3dSb290KFNoYWRvd1Jvb3QmKQogewotICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dT
dWJ0cmVlKCk7CisgICAgUmVmPElucHV0VHlwZT4gcHJvdGVjdGVkSW5wdXRUeXBlKCptX2lucHV0
VHlwZSk7CisgICAgcHJvdGVjdGVkSW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAg
ICAgdXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCk7CiB9CiAKQEAgLTYyNSw3ICs2
MjUsOCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmNhbkhhdmVTZWxlY3Rpb24oKSBjb25zdAog
CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykKIHsKLSAgICBtX2lucHV0VHlwZS0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50
cyk7CisgICAgUmVmPElucHV0VHlwZT4gcHJvdGVjdGVkSW5wdXRUeXBlKCptX2lucHV0VHlwZSk7
CisgICAgcHJvdGVjdGVkSW5wdXRUeXBlLT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRz
KTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApAQCAtNjgyLDYgKzY4Myw3IEBAIGlubGlu
ZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUoKQogdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIEFTU0VSVChtX2lucHV0VHlwZSk7Cisg
ICAgUmVmPElucHV0VHlwZT4gcHJvdGVjdGVkSW5wdXRUeXBlKCptX2lucHV0VHlwZSk7CiAKICAg
ICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewogICAgICAgICByZW1vdmVGcm9tUmFkaW9CdXR0b25H
cm91cCgpOwpAQCAtODg5LDYgKzg5MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0QWN0
aXZhdGVkU3VibWl0KGJvb2wgZmxhZykKIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjphcHBlbmRG
b3JtRGF0YShET01Gb3JtRGF0YSYgZm9ybURhdGEsIGJvb2wgbXVsdGlwYXJ0KQogeworICAgIFJl
ZjxJbnB1dFR5cGU+IHByb3RlY3RlZElucHV0VHlwZSgqbV9pbnB1dFR5cGUpOwogICAgIHJldHVy
biBtX2lucHV0VHlwZS0+aXNGb3JtRGF0YUFwcGVuZGFibGUoKSAmJiBtX2lucHV0VHlwZS0+YXBw
ZW5kRm9ybURhdGEoZm9ybURhdGEsIG11bHRpcGFydCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZjhkOWQyYzc1MDkwOTNkZTA0ODllYjYxMDYwMjE1N2Rl
NjQ1ZGY4Ni4uMTM4NDMzMjQxZmE1NDk0NTNmNjkwNTVmMTY3NWI0NzZhNjljOTQ2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBwcml2
YXRlOgogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiAgICAgU3RyaW5nIG1fdmFsdWVJZkRpcnR5
OwogICAgIHVuc2lnbmVkIG1fc2l6ZTsKLSAgICBzaG9ydCBtX21heFJlc3VsdHM7CisgICAgc2hv
cnQgbV9tYXhSZXN1bHRzIHsgLTEgfTsKICAgICBib29sIG1faXNDaGVja2VkIDogMTsKICAgICBi
b29sIG1fcmVmbGVjdHNDaGVja2VkQXR0cmlidXRlIDogMTsKICAgICBib29sIG1faXNJbmRldGVy
bWluYXRlIDogMTsKQEAgLTQ3MCw3ICs0NzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNU
b3VjaEV2ZW50SGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICBib29sIG1faXNTcGVsbGNoZWNrRGlz
YWJsZWRFeGNlcHRUZXh0UmVwbGFjZW1lbnQgOiAxOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnB1
dFR5cGU+IG1faW5wdXRUeXBlOworICAgIFJlZlB0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOwog
ICAgIC8vIFRoZSBJbWFnZUxvYWRlciBtdXN0IGJlIG93bmVkIGJ5IHRoaXMgZWxlbWVudCBiZWNh
dXNlIHRoZSBsb2FkZXIgY29kZSBhc3N1bWVzCiAgICAgLy8gdGhhdCBpdCBsaXZlcyBhcyBsb25n
IGFzIGl0cyBvd25pbmcgZWxlbWVudCBsaXZlcy4gSWYgd2UgbW92ZSB0aGUgbG9hZGVyIGludG8K
ICAgICAvLyB0aGUgSW1hZ2VJbnB1dCBvYmplY3Qgd2UgbWF5IGRlbGV0ZSB0aGUgbG9hZGVyIHdo
aWxlIHRoaXMgZWxlbWVudCBsaXZlcyBvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRl
eCBiOTJhNjU2OWZkMTQ4YTQzNDk0YzMzMGMyZWMwYWNhN2E1MTg4ODQ5Li44YmVjM2E2ZjQwMDk3
NGFhZGM0YmVhYjM0OWJlMDZmOGQ0Y2I3YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAo
YXBAbnlwb3AuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3
ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC04NSwxMyArODUsMTMgQEAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAogdHlwZWRlZiBib29sIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjoqSW5wdXRUeXBlQ29uZGl0aW9uYWxGdW5jdGlvbikoKSBjb25zdDsKIHR5cGVkZWYgY29uc3Qg
QXRvbWljU3RyaW5nJiAoKklucHV0VHlwZU5hbWVGdW5jdGlvbikoKTsKLXR5cGVkZWYgc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1
dEVsZW1lbnQmKTsKK3R5cGVkZWYgUmVmPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVu
Y3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsKIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcs
IElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBJbnB1
dFR5cGVGYWN0b3J5TWFwOwogCiB0ZW1wbGF0ZTxjbGFzcyBUPgotc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbnB1dFR5cGU+IGNyZWF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KQorc3RhdGljIFJlZjxJbnB1dFR5cGU+IGNyZWF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFQoZWxlbWVudCkpOwogfQogCiBzdGF0aWMgSW5wdXRU
eXBlRmFjdG9yeU1hcCBjcmVhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKCkKQEAgLTE0OSwxOSArMTQ5
LDE5IEBAIHN0YXRpYyBJbnB1dFR5cGVGYWN0b3J5TWFwIGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlN
YXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZU5hbWUpCitSZWY8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQogewogICAg
IGlmICghdHlwZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBhdXRvIGZh
Y3RvcnlNYXAgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoY3JlYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCgp
KTsKICAgICAgICAgaWYgKGF1dG8gZmFjdG9yeSA9IGZhY3RvcnlNYXAuZ2V0KCkuZ2V0KHR5cGVO
YW1lKSkKICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5KGVsZW1lbnQpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0SW5wdXRUeXBlPihlbGVtZW50KTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0SW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGVUZXh0KEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCitSZWY8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0SW5w
dXRUeXBlPihlbGVtZW50KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0SW5wdXRUeXBl
KGVsZW1lbnQpKTsKIH0KIAogSW5wdXRUeXBlOjp+SW5wdXRUeXBlKCkgPSBkZWZhdWx0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNTI2OGQ4YzUyYmVmMTczMjY5NDNiZGY0ZWJkZDhlMTZh
OGQxZWQ3Ny4uZDBiODZiNThhMDM1YmJjMDE1NDZiYTNjNDcxMmZhNDA2NjE0MTNiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYg
UExBVEZPUk0oSU9TKQpAQCAtNjgsMTIgKzY5LDEyIEBAIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlj
a1N0YXRlOwogLy8gQW4gSW5wdXRUeXBlIG9iamVjdCByZXByZXNlbnRzIHRoZSB0eXBlLXNwZWNp
ZmljIHBhcnQgb2YgYW4gSFRNTElucHV0RWxlbWVudC4KIC8vIERvIG5vdCBleHBvc2UgaW5zdGFu
Y2VzIG9mIElucHV0VHlwZSBhbmQgY2xhc3NlcyBkZXJpdmVkIGZyb20gaXQgdG8gY2xhc3Nlcwog
Ly8gb3RoZXIgdGhhbiBIVE1MSW5wdXRFbGVtZW50LgotY2xhc3MgSW5wdXRUeXBlIHsKK2NsYXNz
IElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4gewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJik7
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZVRleHQoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBl
PiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5JbnB1dFR5cGUo
KTsKIAogICAgIHN0YXRpYyBib29sIHRoZW1lU3VwcG9ydHNEYXRhTGlzdFVJKElucHV0VHlwZSop
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDRmOGI3N2ZkNjc2MTU2ZTgyN2VjNDZhOTJmZmI5YjkyNDZmMjE5NDYuLjY5MDQ1
MmM1ZGZjMGQ2Yjc5NGQxODUyZmNmZTc0YWE5NjI0YzU1MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxOC0wNS0wMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBVc2UgUmV0YWluUHRyIGZvciBmb3JtIGlucHV0IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTIxMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzk3MzQwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2FjY2Vzcy1rZXktbXV0YXRpb24tMi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvYWNjZXNzLWtleS1tdXRhdGlvbi0yLmh0bWw6
IEFkZGVkLgorCiAyMDE4LTA1LTAxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFByZXZlbnQgYXNzZXJ0aW9uIHdoZW4gY2hhbmdpbmcgZm9ybXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWNjZXNzLWtleS1tdXRhdGlvbi0yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYWNjZXNzLWtleS1tdXRhdGlvbi0yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2U5Y2Y0YmNmYzI3NTk1MTAwODdhNzk4MmFjN2ZiNmVi
ZDg3NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hY2Nlc3Mt
a2V5LW11dGF0aW9uLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0FjY2VzcyBrZXkg
c2hvdWxkIHdvcmsgd2hlbiBpbnB1dCB0eXBlIGF0dHJpYnV0ZSBpcyBtdXRhdGVkLiBUbyB0ZXN0
IHRoaXMgbWFudWFsbHksIHByZXNzIHRoZSA8YWx0PitrIGtleXMgKG9uIE1hYyBPUyBYLCBwcmVz
cyA8Q3RybD4rPE9wdD4gaW5zdGVhZCBvZiA8YWx0PikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGlmIG5vdCBjcmFzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2FjY2Vzcy1rZXktbXV0YXRpb24tMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9hY2Nlc3Mta2V5LW11dGF0aW9uLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzI5MWRhMTQ1NzFjZGRi
NmY1NThkOWQ0OTkzOWMxNzY1YzQzMTFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9hY2Nlc3Mta2V5LW11dGF0aW9uLTIuaHRtbApAQCAtMCwwICsxLDM5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdBY2Nlc3Mg
a2V5IHNob3VsZCB3b3JrIHdoZW4gaW5wdXQgdHlwZSBhdHRyaWJ1dGUgaXMgbXV0YXRlZC4gVG8g
dGVzdCB0aGlzIG1hbnVhbGx5LCBwcmVzcyB0aGUgJmx0O2FsdCZndDsrayBrZXlzIChvbiBNYWMg
T1MgWCwgcHJlc3MgJmx0O0N0cmwmZ3Q7KyZsdDtPcHQmZ3Q7IGluc3RlYWQgb2YgJmx0O2FsdCZn
dDspLicpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcHJlc3NLZXkoa2V5
KQoreworICAgIGlmIChuYXZpZ2F0b3IudXNlckFnZW50LnNlYXJjaCgvXGJNYWMgT1MgWFxiLykg
IT09IC0xKQorICAgICAgICBtb2RpZmllcnMgPSBbImN0cmxLZXkiLCAiYWx0S2V5Il07CisgICAg
ZWxzZQorICAgICAgICBtb2RpZmllcnMgPSBbImFsdEtleSJdOworCisgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXksIG1vZGlmaWVycyk7
Cit9CisKK2Z1bmN0aW9uIGV2ZW50aGFuZGxlcigpCit7CisgICAgaW5wdXQudHlwZSA9ICJidXR0
b24iCit9CisKK2Z1bmN0aW9uIHN0YXJ0KCkKK3sKKyAgICBwcmVzc0tleSgnaycpOworICAgIHRl
c3RQYXNzZWQoJ2lmIG5vdCBjcmFzaGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBpZD0iaW5wdXQiIHR5cGU9InJhbmdlIiBh
Y2Nlc3NrZXk9ImsiIG9uZm9jdXM9ImV2ZW50aGFuZGxlcigpIj4KKzxpZnJhbWUgb25sb2FkPSJz
dGFydCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="357577"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>