<?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>45903</bug_id>
          
          <creation_ts>2010-09-16 09:58:00 -0700</creation_ts>
          <short_desc>Reduce use of HTMLInputElement::inputType so we can remove it later</short_desc>
          <delta_ts>2010-09-18 07:56:09 -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>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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45872</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280165</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 09:58:00 -0700</bug_when>
    <thetext>Reduce use of HTMLInputElement::inputType so we can remove it later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280171</commentid>
    <comment_count>1</comment_count>
      <attachid>67814</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 10:05:49 -0700</bug_when>
    <thetext>Created attachment 67814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280196</commentid>
    <comment_count>2</comment_count>
      <attachid>67814</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-16 10:39:22 -0700</bug_when>
    <thetext>Comment on attachment 67814
Patch

&gt; -                        || (focusedNode-&gt;hasTagName(inputTag) &amp;&amp; (static_cast&lt;HTMLInputElement*&gt;(focusedNode)-&gt;inputType() == HTMLInputElement::TEXT
&gt; -                                                                || static_cast&lt;HTMLInputElement*&gt;(focusedNode)-&gt;inputType() == HTMLInputElement::SEARCH)))) {
&gt; +    if (focusedNode &amp;&amp; (focusedNode-&gt;hasTagName(textareaTag) || (focusedNode-&gt;hasTagName(inputTag) &amp;&amp; static_cast&lt;HTMLInputElement*&gt;(focusedNode)-&gt;isTextField()))) {

Is this behavior change intentional? (isTextField() returns true for COLOR, DATE, DATETIME, DATETIMELOCAL, EMAIL, ISINDEX, MONTH, NUMBER, PASSWORD, SEARCH, TELEPHONE, TEXT, TIME, URL and WEEK.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280216</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 11:07:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Is this behavior change intentional? (isTextField() returns true for COLOR, DATE, DATETIME, DATETIMELOCAL, EMAIL, ISINDEX, MONTH, NUMBER, PASSWORD, SEARCH, TELEPHONE, TEXT, TIME, URL and WEEK.)

Yes.

The code in question relates to changing writing direction when the selection is inside an HTML input element. It says that if the focus is in an input element we should change the writing direction of the element, but if the focus is elsewhere, we should apply the writing direction to the surrounding paragraph. So what matters for the editing operation is whether the input element one that has editable text inside it, or if it is an element that can only be selected as a whole. I believe the right check for that is isTextField.

In the future isTextField will start returning true for those other input types if they are implemented as something other than a text field. And it’s good that the behavior of this function will track such changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280226</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 11:32:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; In the future isTextField will start returning true for those other input types if they are implemented as something other than a text field. And it’s good that the behavior of this function will track such changes.

I meant &quot;returning false&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280239</commentid>
    <comment_count>5</comment_count>
      <attachid>67814</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-16 11:44:58 -0700</bug_when>
    <thetext>Comment on attachment 67814
Patch

&gt; -        if (!e-&gt;hasTagName(inputTag) || static_cast&lt;HTMLInputElement*&gt;(e)-&gt;inputType() != HTMLInputElement::IMAGE)
&gt; +        if (!e-&gt;hasTagName(inputTag) || static_cast&lt;HTMLInputElement*&gt;(e)-&gt;isImageButton())

Second condition is reversed (missing &quot;!&quot;)

r=me with that fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280241</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 11:47:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 67814 [details])
&gt; &gt; -        if (!e-&gt;hasTagName(inputTag) || static_cast&lt;HTMLInputElement*&gt;(e)-&gt;inputType() != HTMLInputElement::IMAGE)
&gt; &gt; +        if (!e-&gt;hasTagName(inputTag) || static_cast&lt;HTMLInputElement*&gt;(e)-&gt;isImageButton())
&gt; 
&gt; Second condition is reversed (missing &quot;!&quot;)

Thanks for catching that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280283</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 12:41:10 -0700</bug_when>
    <thetext>Committed r67653: &lt;http://trac.webkit.org/changeset/67653&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280287</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 12:46:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67653 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, and Qt Linux ARMv7 Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67814</attachid>
            <date>2010-09-16 10:05:49 -0700</date>
            <delta_ts>2010-09-16 11:44:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45903-20100916100548.patch</filename>
            <type>text/plain</type>
            <size>21864</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzYzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTAtMDktMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZHVj
ZSB1c2Ugb2YgSFRNTElucHV0RWxlbWVudDo6aW5wdXRUeXBlIHNvIHdlIGNhbiByZW1vdmUgaXQg
bGF0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
OTAzCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNGaWxl
VXBsb2FkQnV0dG9uKTogVXNlIGlzRmlsZVVwbG9hZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzSW5wdXRJbWFnZSk6IFVzZSBpc0ltYWdlQnV0dG9uLgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUpOiBVc2UKKyAgICAgICAgaXNDaGVja2JveCBhbmQgaXNSYWRpb0J1dHRv
bi4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFkanVzdFJlbmRlclN0eWxlKTogVXNlIGlzSW1hZ2VCdXR0
b24uCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKTogVXNlIGlzVGV4dEZpZWxkLgorCisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6IFVzZSBpc1Bhc3N3b3JkRmll
bGQuCisKKyAgICAgICAgKiBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6aXNJblBhc3N3b3JkRmllbGQpOiBVc2Ug
aXNQYXNzd29yZEZpZWxkLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFk
ZGVkIGlzRmlsZVVwbG9hZCwgaXNJbWFnZUJ1dHRvbiwgYW5kIGlzU3VibWl0QnV0dG9uLgorCisg
ICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRU
b29sVGlwKTogVXNlIGlzU3VibWl0QnV0dG9uIGFuZCBpc0ZpbGVVcGxvYWQuCisKKyAgICAgICAg
KiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFzRmlsZUlucHV0
KTogVXNlIGlzRmlsZVVwbG9hZC4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmlzU3VibWl0SW1hZ2UpOiBVc2UgaXNJbWFnZUJ1dHRvbi4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlRnJvbUVsZW1lbnQpOiBV
c2UgaXNGaWxlVXBsb2FkLgorCiAyMDEwLTA5LTE2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCklu
ZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCShyZXZpc2lvbiA2NzQ3NCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAzLDcgKzUwMyw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNGaWxlVXAKIHsKICAgICBpZiAo
bV9yZW5kZXJlciAmJiBtX3JlbmRlcmVyLT5ub2RlKCkgJiYgbV9yZW5kZXJlci0+bm9kZSgpLT5o
YXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX3JlbmRlcmVyLT5ub2RlKCkpOwotICAg
ICAgICByZXR1cm4gaW5wdXQtPmlucHV0VHlwZSgpID09IEhUTUxJbnB1dEVsZW1lbnQ6OkZJTEU7
CisgICAgICAgIHJldHVybiBpbnB1dC0+aXNGaWxlVXBsb2FkKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBmYWxzZTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmlzSW5wdXRJCiAgICAgTm9kZSogZWxlbWVudE5vZGUgPSBub2RlKCk7CiAgICAg
aWYgKHJvbGVWYWx1ZSgpID09IEJ1dHRvblJvbGUgJiYgZWxlbWVudE5vZGUgJiYgZWxlbWVudE5v
ZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnROb2RlKTsKLSAgICAg
ICAgcmV0dXJuIGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRTsK
KyAgICAgICAgcmV0dXJuIGlucHV0LT5pc0ltYWdlQnV0dG9uKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBmYWxzZTsKQEAgLTMwMzQsOSArMzAzNCw5IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmoKIAogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUo
aW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOwotICAgICAgICBpZiAoaW5wdXQtPmlucHV0VHlw
ZSgpID09IEhUTUxJbnB1dEVsZW1lbnQ6OkNIRUNLQk9YKQorICAgICAgICBpZiAoaW5wdXQtPmlz
Q2hlY2tib3goKSkKICAgICAgICAgICAgIHJldHVybiBDaGVja0JveFJvbGU7Ci0gICAgICAgIGlm
IChpbnB1dC0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVudDo6UkFESU8pCisgICAgICAg
IGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICAgICAgcmV0dXJuIFJhZGlvQnV0
dG9uUm9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1RleHRCdXR0b24oKSkKICAgICAgICAgICAg
IHJldHVybiBCdXR0b25Sb2xlOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlz
aW9uIDY3NDc0KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3OTYsNyArMTc5Niw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YWRqdXN0
UmVuZGVyU3R5bGUKICAgICBpZiAoZSAmJiBlLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpICYmIHN0
eWxlLT5mb250U2l6ZSgpID49IDExKSB7CiAgICAgICAgIC8vIERvbid0IGFwcGx5IGludHJpbnNp
YyBtYXJnaW5zIHRvIGltYWdlIGJ1dHRvbnMuICBUaGUgZGVzaWduZXIga25vd3MgaG93IGJpZyB0
aGUgaW1hZ2VzIGFyZSwKICAgICAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmVhdCBhbGwgaW1hZ2Ug
YnV0dG9ucyBhcyB0aG91Z2ggdGhleSB3ZXJlIGV4cGxpY2l0bHkgc2l6ZWQuCi0gICAgICAgIGlm
ICghZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KGUpLT5pbnB1dFR5cGUoKSAhPSBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRSkKKyAgICAgICAg
aWYgKCFlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSB8fCBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oZSktPmlzSW1hZ2VCdXR0b24oKSkKICAgICAgICAgICAgIGFkZEludHJpbnNpY01hcmdp
bnMoc3R5bGUpOwogICAgIH0KIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY3NDc0KQor
KysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NTEsOSAr
MTQ1MSw3IEBAIHZvaWQgRWRpdG9yOjp0b2dnbGVVbmRlcmxpbmUoKQogdm9pZCBFZGl0b3I6OnNl
dEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAg
IE5vZGUqIGZvY3VzZWROb2RlID0gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsK
LSAgICBpZiAoZm9jdXNlZE5vZGUgJiYgKGZvY3VzZWROb2RlLT5oYXNUYWdOYW1lKHRleHRhcmVh
VGFnKQotICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGZvY3VzZWROb2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSAmJiAoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGZvY3VzZWROb2Rl
KS0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVudDo6VEVYVAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1c2VkTm9kZSktPmlucHV0VHlwZSgpID09IEhU
TUxJbnB1dEVsZW1lbnQ6OlNFQVJDSCkpKSkgeworICAgIGlmIChmb2N1c2VkTm9kZSAmJiAoZm9j
dXNlZE5vZGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpIHx8IChmb2N1c2VkTm9kZS0+aGFzVGFn
TmFtZShpbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGZvY3VzZWRO
b2RlKS0+aXNUZXh0RmllbGQoKSkpKSB7CiAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHN0YXRpY19j
YXN0PEhUTUxFbGVtZW50Kj4oZm9jdXNlZE5vZGUpLT5zZXRBdHRyaWJ1dGUoZGlyQXR0ciwgZGly
ZWN0aW9uID09IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIiIDogInJ0bCIpOwpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZp
c2lvbiA2NzQ3NCkKKysrIFdlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHZvaWQgUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmIChtX3NtYXJ0UmVwbGFjZSAmJiBjdXJyZW50
Um9vdCkgewogICAgICAgICAvLyBEaXNhYmxlIHNtYXJ0IHJlcGxhY2UgZm9yIHBhc3N3b3JkIGZp
ZWxkcy4KICAgICAgICAgTm9kZSogc3RhcnQgPSBjdXJyZW50Um9vdC0+c2hhZG93QW5jZXN0b3JO
b2RlKCk7Ci0gICAgICAgIGlmIChzdGFydC0+aGFzVGFnTmFtZShpbnB1dFRhZykgJiYgc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHN0YXJ0KS0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0
RWxlbWVudDo6UEFTU1dPUkQpCisgICAgICAgIGlmIChzdGFydC0+aGFzVGFnTmFtZShpbnB1dFRh
ZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHN0YXJ0KS0+aXNQYXNzd29yZEZp
ZWxkKCkpCiAgICAgICAgICAgICBtX3NtYXJ0UmVwbGFjZSA9IGZhbHNlOwogICAgIH0KICAgICBp
ZiAobV9zbWFydFJlcGxhY2UpIHsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5jcHAJKHJldmlzaW9uIDY3NDc0KQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMyLDcgKzEzMzIsNyBAQCBib29sIFNl
bGVjdGlvbkNvbnRyb2xsZXI6OmlzSW5QYXNzd29yZEZpCiAgICAgaWYgKCFzdGFydE5vZGUtPmhh
c1RhZ05hbWUoaW5wdXRUYWcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzdGFydE5vZGUpLT5pbnB1dFR5cGUo
KSA9PSBIVE1MSW5wdXRFbGVtZW50OjpQQVNTV09SRDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHN0YXJ0Tm9kZSktPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCiBi
b29sIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmNhcmV0UmVuZGVyc0luc2lkZU5vZGUoTm9kZSogbm9k
ZSkgY29uc3QKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNjc0NzQpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
MTYgKzEwMiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVwVXBGcm9tUmVuZGVyZXIoaW50KTsK
IAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFNVQk1J
VCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQorCiAgICAgdmlydHVh
bCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUkFESU87IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTRUFSQ0g7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbnB1dFR5cGVIaWRkZW4oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
SElEREVOOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBQQVNTV09SRDsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IENIRUNLQk9YOyB9Ci0gICAgYm9vbCBpc1RlbGVwaG9u
ZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRFTEVQSE9ORTsgfQotICAgIGJvb2wg
aXNOdW1iZXJGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBOVU1CRVI7IH0KKwogICAg
IGJvb2wgaXNFbWFpbEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVNQUlMOyB9Ci0g
ICAgYm9vbCBpc1VybEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFVSTDsgfQorICAg
IGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEZJTEU7IH0KKyAg
ICBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gSU1BR0U7IH0K
KyAgICBib29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gTlVNQkVS
OyB9CisgICAgYm9vbCBpc1N1Ym1pdEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBT
VUJNSVQ7IH0KKyAgICBib29sIGlzVGVsZXBob25lRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVEVMRVBIT05FOyB9CisgICAgYm9vbCBpc1VSTEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IFVSTDsgfQorCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICB2aXJ0dWFs
IGJvb2wgaXNTcGVlY2hFbmFibGVkKCkgY29uc3Q7CiAjZW5kaWYgICAgCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAko
cmV2aXNpb24gNjc0NzQpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlwKGNvbnN0IEhpdFRl
c3RSZXMKICAgICAgICAgICAgIC8vIEdldCB0b29sdGlwIHJlcHJlc2VudGluZyBmb3JtIGFjdGlv
biwgaWYgcmVsZXZhbnQKICAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewogICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOwotICAgICAgICAgICAgICAgIGlmIChpbnB1dC0+
aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVudDo6U1VCTUlUKQorICAgICAgICAgICAgICAg
IGlmIChpbnB1dC0+aXNTdWJtaXRCdXR0b24oKSkKICAgICAgICAgICAgICAgICAgICAgaWYgKEhU
TUxGb3JtRWxlbWVudCogZm9ybSA9IGlucHV0LT5mb3JtKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvb2xUaXAgPSBmb3JtLT5hY3Rpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChmb3JtLT5yZW5kZXJlcigpKQpAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgQ2hyb21lOjpz
ZXRUb29sVGlwKGNvbnN0IEhpdFRlc3RSZXMKICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSByZXN1
bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpIHsKICAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKGlucHV0VGFnKSkgewogICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOwotICAgICAgICAgICAgICAg
IGlmIChpbnB1dC0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVudDo6RklMRSkgeworICAg
ICAgICAgICAgICAgIGlmIChpbnB1dC0+aXNGaWxlVXBsb2FkKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgRmlsZUxpc3QqIGZpbGVzID0gaW5wdXQtPmZpbGVzKCk7CiAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxpc3RTaXplID0gZmlsZXMtPmxlbmd0aCgpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoZmlsZXMgJiYgbGlzdFNpemUgPiAxKSB7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDY3NDc0KQorKysgV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjU1LDE3ICsyNTUsMTcgQEAgc3RhdGljIEhUTUxJbnB1dEVs
ZW1lbnQqIGFzRmlsZUlucHV0KE5vZAogICAgIC8vIFRoZSBidXR0b24gZm9yIGEgRklMRSBpbnB1
dCBpcyBhIHN1YiBlbGVtZW50IHdpdGggbm8gc2V0IGlucHV0IHR5cGUKICAgICAvLyBJbiBvcmRl
ciB0byBnZXQgYXJvdW5kIHRoaXMgcHJvYmxlbSB3ZSBhc3N1bWUgYW55IG5vbi1GSUxFIGlucHV0
IGVsZW1lbnQKICAgICAvLyBpcyB0aGlzIGludGVybmFsIGJ1dHRvbiwgYW5kIHRyeSBxdWVyeWlu
ZyB0aGUgc2hhZG93IHBhcmVudCBub2RlLgotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6aW5wdXRUYWcpICYmIG5vZGUtPmlzU2hhZG93Tm9kZSgpICYmIHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihub2RlKS0+aW5wdXRUeXBlKCkgIT0gSFRNTElucHV0RWxlbWVudDo6
RklMRSkKLSAgICAgIG5vZGUgPSBub2RlLT5zaGFkb3dQYXJlbnROb2RlKCk7CisgICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykgJiYgbm9kZS0+aXNTaGFkb3dOb2Rl
KCkgJiYgIXN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKS0+aXNGaWxlVXBsb2Fk
KCkpCisgICAgICAgIG5vZGUgPSBub2RlLT5zaGFkb3dQYXJlbnROb2RlKCk7CiAKICAgICBpZiAo
IW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOwotICAgIGlmIChpbnB1dEVsZW0tPmlucHV0VHlw
ZSgpID09IEhUTUxJbnB1dEVsZW1lbnQ6OkZJTEUpCi0gICAgICAgIHJldHVybiBpbnB1dEVsZW07
CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgIGlmICghaW5wdXRFbGVtZW50LT5pc0ZpbGVVcGxvYWQo
KSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gaW5wdXRF
bGVtZW50OwogfQogCiBzdGF0aWMgRWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UoRG9jdW1lbnQq
IGRvY3VtZW50VW5kZXJNb3VzZSwgY29uc3QgSW50UG9pbnQmIHApCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAkocmV2aXNpb24gNjc0NzQpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA0NSw4ICsxMDQ1LDcgQEAgRnJhbWUqIEV2ZW50SGFuZGxl
cjo6c3ViZnJhbWVGb3JUYXJnZXRObwogCiBzdGF0aWMgYm9vbCBpc1N1Ym1pdEltYWdlKE5vZGUq
IG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykK
LSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpLT5pbnB1dFR5
cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRTsKKyAgICByZXR1cm4gbm9kZSAmJiBub2Rl
LT5oYXNUYWdOYW1lKGlucHV0VGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
bm9kZSktPmlzSW1hZ2VCdXR0b24oKTsKIH0KIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBub2Rl
J3MgZWRpdGFibGUgYmxvY2sgaXMgbm90IGN1cnJlbnQgZm9jdXNlZCBmb3IgZWRpdGluZwpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAkocmV2
aXNpb24gNjc0NzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCBDaHJvbWUqIFJlbmRlckZp
bGVVcGxvYWRDb250cm9sOjpjaHJvbWUoCiB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1
cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7Ci0gICAgQVNTRVJUKGlu
cHV0RWxlbWVudC0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVudDo6RklMRSk7CisgICAg
QVNTRVJUKGlucHV0RWxlbWVudC0+aXNGaWxlVXBsb2FkKCkpOwogICAgIAogICAgIGlmICghbV9i
dXR0b24pIHsKICAgICAgICAgbV9idXR0b24gPSBTaGFkb3dJbnB1dEVsZW1lbnQ6OmNyZWF0ZShp
bnB1dEVsZW1lbnQpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzYzMSkKKysrIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAx
MC0wOS0xNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBIVE1MSW5wdXRF
bGVtZW50OjppbnB1dFR5cGUgc28gd2UgY2FuIHJlbW92ZSBpdCBsYXRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MDMKKworICAgICAgICAqIHNy
Yy9ET01VdGlsaXRpZXNQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZWxlbWVudEhhc0xl
Z2FsTGlua0F0dHJpYnV0ZSk6IFVzZSBpc0ltYWdlQnV0dG9uLgorICAgICAgICAqIHNyYy9XZWJQ
YXNzd29yZEZvcm1VdGlscy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmZpbmRQYXNzd29yZEZvcm1G
aWVsZHMpOiBVc2UgaXNQYXNzd29yZEZpZWxkLgorICAgICAgICAqIHNyYy9XZWJTZWFyY2hhYmxl
Rm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SXNJbkRlZmF1bHRTdGF0ZSk6IFVzZSBp
c0NoZWNrYm94IGFuZCBpc1JhZGlvQnV0dG9uLgorICAgICAgICAoV2ViQ29yZTo6SGFzU3VpdGFi
bGVUZXh0RWxlbWVudCk6IFVzZSBpc0ZpbGVVcGxvYWQgYW5kIGlzUGFzc3dvcmRGaWVsZC4KKwog
MjAxMC0wOS0xNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9ET01VdGlsaXRpZXNQcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuY3BwCShyZXZpc2lvbiA2NzQ3NCkKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3
LDcgKzk3LDcgQEAgYm9vbCBlbGVtZW50SGFzTGVnYWxMaW5rQXR0cmlidXRlKGNvbnN0IAogICAg
ICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewogICAg
ICAgICAgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPQogICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpOwotICAgICAgICAgICAg
aWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRSkKKyAgICAg
ICAgICAgIGlmIChpbnB1dC0+aXNJbWFnZUJ1dHRvbigpKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBIVE1MTmFtZXM6
OmhyZWZBdHRyKSB7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhc3N3b3JkRm9ybVV0
aWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhc3N3b3JkRm9y
bVV0aWxzLmNwcAkocmV2aXNpb24gNjc0NzQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBh
c3N3b3JkRm9ybVV0aWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksOCArNzksOCBAQCB2b2lk
IGZpbmRQYXNzd29yZEZvcm1GaWVsZHMoSFRNTEZvcm1FbGVtCiAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICBpZiAoKGZpZWxkcy0+cGFzc3dvcmRzLnNpemUoKSA8IG1heFBhc3N3b3Jk
cykKLSAgICAgICAgICAgICYmIChpbnB1dEVsZW1lbnQtPmlucHV0VHlwZSgpID09IEhUTUxJbnB1
dEVsZW1lbnQ6OlBBU1NXT1JEKQotICAgICAgICAgICAgJiYgKGlucHV0RWxlbWVudC0+YXV0b0Nv
bXBsZXRlKCkpKSB7CisgICAgICAgICAgICAmJiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVs
ZCgpCisgICAgICAgICAgICAmJiBpbnB1dEVsZW1lbnQtPmF1dG9Db21wbGV0ZSgpKSB7CiAgICAg
ICAgICAgICBpZiAoZmllbGRzLT5wYXNzd29yZHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAg
IGZpcnN0UGFzc3dvcmRJbmRleCA9IGk7CiAgICAgICAgICAgICBmaWVsZHMtPnBhc3N3b3Jkcy5h
cHBlbmQoaW5wdXRFbGVtZW50KTsKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBmaW5kUGFzc3dvcmRG
b3JtRmllbGRzKEhUTUxGb3JtRWxlbQogICAgICAgICAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlz
RW5hYmxlZEZvcm1Db250cm9sKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIHVzZSBhIGZ1bmN0aW9uIG90aGVyIHRoYW4g
aW5wdXRUeXBlLgogICAgICAgICAgICAgaWYgKChpbnB1dEVsZW1lbnQtPmlucHV0VHlwZSgpID09
IEhUTUxJbnB1dEVsZW1lbnQ6OlRFWFQpCiAgICAgICAgICAgICAgICAgJiYgKGlucHV0RWxlbWVu
dC0+YXV0b0NvbXBsZXRlKCkpKSB7CiAgICAgICAgICAgICAgICAgZmllbGRzLT51c2VyTmFtZSA9
IGlucHV0RWxlbWVudDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VhcmNoYWJsZUZv
cm1EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlYXJjaGFi
bGVGb3JtRGF0YS5jcHAJKHJldmlzaW9uIDY3NDc0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZWFyY2hhYmxlRm9ybURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDcg
QEAgYm9vbCBJc0luRGVmYXVsdFN0YXRlKGNvbnN0IEhUTUxGb3JtQ29udAogewogICAgIGlmIChm
b3JtRWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewogICAgICAgICBj
b25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBI
VE1MSW5wdXRFbGVtZW50Kj4oZm9ybUVsZW1lbnQpOwotICAgICAgICBpZiAoaW5wdXRFbGVtZW50
LT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpDSEVDS0JPWCB8fCBpbnB1dEVsZW1l
bnQtPmlucHV0VHlwZSgpID09IEhUTUxJbnB1dEVsZW1lbnQ6OlJBRElPKQorICAgICAgICBpZiAo
aW5wdXRFbGVtZW50LT5pc0NoZWNrYm94KCkgfHwgaW5wdXRFbGVtZW50LT5pc1JhZGlvQnV0dG9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5jaGVja2VkKCkgPT0gaW5wdXRF
bGVtZW50LT5kZWZhdWx0Q2hlY2tlZCgpOwogICAgIH0gZWxzZSBpZiAoZm9ybUVsZW1lbnQtPmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQogICAgICAgICByZXR1cm4gSXNTZWxlY3RJ
bkRlZmF1bHRTdGF0ZShzdGF0aWNfY2FzdDxjb25zdCBIVE1MU2VsZWN0RWxlbWVudCo+KGZvcm1F
bGVtZW50KSk7CkBAIC0xNjYsMTkgKzE2NiwyNCBAQCBib29sIEhhc1N1aXRhYmxlVGV4dEVsZW1l
bnQoY29uc3QgSFRNTEZvCiAKICAgICAgICAgYm9vbCBpc1RleHRFbGVtZW50ID0gZmFsc2U7CiAg
ICAgICAgIGlmIChmb3JtRWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkg
eworICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqPihm
b3JtRWxlbWVudCktPmlzRmlsZVVwbG9hZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVG9vIGJp
ZywgZG9uJ3QgdHJ5IHRvIGluZGV4IHRoaXMuCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5w
dXRFbGVtZW50Kj4oZm9ybUVsZW1lbnQpLT5pc1Bhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAg
ICAgICAgIC8vIERvbid0IHN0b3JlIHBhc3N3b3JkcyEgVGhpcyBpcyBtb3N0IGxpa2VseSBhbiBo
dHRwcyBhbnl3YXkuCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIHVzZSBhIGZ1bmN0aW9uIG9uIEhU
TUxJbnB1dEVsZW1lbnQgb3RoZXIgdGhhbiBpbnB1dFR5cGUuCisgICAgICAgICAgICAvLyBBbHNv
LCBpdCdzIG5vdCBjbGVhciB3aHkgVEVYVCBzaG91bGQgYmUgaGFuZGxlZCBkaWZmZXJlbnRseSB0
aGFuLCBzYXksIFNFQVJDSC4KICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3Qg
SFRNTElucHV0RWxlbWVudCo+KGZvcm1FbGVtZW50KS0+aW5wdXRUeXBlKCkpIHsKICAgICAgICAg
ICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6VEVYVDoKICAgICAgICAgICAgIGNhc2UgSFRNTElu
cHV0RWxlbWVudDo6SVNJTkRFWDoKICAgICAgICAgICAgICAgICBpc1RleHRFbGVtZW50ID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgSFRNTElucHV0RWxl
bWVudDo6UEFTU1dPUkQ6Ci0gICAgICAgICAgICAgICAgLy8gRG9uJ3Qgc3RvcmUgcGFzc3dvcmRz
ISBUaGlzIGlzIG1vc3QgbGlrZWx5IGFuIGh0dHBzIGFueXdheS4KLSAgICAgICAgICAgICAgICAv
LyBGYWxsIHRocm91Z2guCi0gICAgICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkZJTEU6
Ci0gICAgICAgICAgICAgICAgLy8gVG9vIGJpZywgZG9uJ3QgdHJ5IHRvIGluZGV4IHRoaXMuCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgIC8vIEFsbCBvdGhlciBpbnB1dCB0eXBlcyBhcmUgaW5kZXhhYmxlLgogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgfQpJbmRleDogV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3
NjMxKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxMC0wOS0xNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBI
VE1MSW5wdXRFbGVtZW50OjppbnB1dFR5cGUgc28gd2UgY2FuIHJlbW92ZSBpdCBsYXRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MDMKKworICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAoLVtXZWJI
VE1MUmVwcmVzZW50YXRpb24gZWxlbWVudERvZXNBdXRvQ29tcGxldGU6XSk6IFVzZSBpc1Bhc3N3
b3JkRmllbGQuCisgICAgICAgICgtW1dlYkhUTUxSZXByZXNlbnRhdGlvbiBlbGVtZW50SXNQYXNz
d29yZDpdKTogVXNlIGlzUGFzc3dvcmRGaWVsZC4KKwogMjAxMC0wOS0xNiAgRXJpYyBVaHJoYW5l
ICA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEppYW4gTGkuCklu
ZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0JKHJldmlz
aW9uIDY3NDc0KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzA2LDE1ICszMDYsMTQgQEAgLSAoQk9PTCllbGVtZW50RG9l
c0F1dG9Db21wbGV0ZTooRE9NRWxlbQogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IGlucHV0RWxlbWVudEZyb21ET01FbGVtZW50KGVsZW1lbnQpOwogICAgIHJldHVybiBpbnB1
dEVsZW1lbnQKICAgICAgICAgJiYgaW5wdXRFbGVtZW50LT5pc1RleHRGaWVsZCgpCi0gICAgICAg
ICYmIGlucHV0RWxlbWVudC0+aW5wdXRUeXBlKCkgIT0gSFRNTElucHV0RWxlbWVudDo6UEFTU1dP
UkQKKyAgICAgICAgJiYgIWlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkKICAgICAgICAg
JiYgaW5wdXRFbGVtZW50LT5hdXRvQ29tcGxldGUoKTsKIH0KIAogLSAoQk9PTCllbGVtZW50SXNQ
YXNzd29yZDooRE9NRWxlbWVudCAqKWVsZW1lbnQKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dEVsZW1lbnQgPSBpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudChlbGVtZW50KTsKLSAgICBy
ZXR1cm4gaW5wdXRFbGVtZW50Ci0gICAgICAgICYmIGlucHV0RWxlbWVudC0+aW5wdXRUeXBlKCkg
PT0gSFRNTElucHV0RWxlbWVudDo6UEFTU1dPUkQ7CisgICAgcmV0dXJuIGlucHV0RWxlbWVudCAm
JiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCiAtIChET01FbGVtZW50ICop
Zm9ybUZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50CkluZGV4OiBXZWJLaXQvcXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NjMx
KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDEwLTA5LTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIEhUTUxJ
bnB1dEVsZW1lbnQ6OmlucHV0VHlwZSBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkwMworCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVu
dFdpdGhJZCk6CisgICAgICAgIFVzZSBpc1Bhc3N3b3JkRmllbGQuCisKIDIwMTAtMDktMTYgIFJv
YmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFu
dG9uaW8gR29tZXMuCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHJldmlzaW9uIDY3NDc0KQorKysgV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTMyLDkgKzUzMiw3IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmVsZW1l
bnREb2UKICAgICBpZiAoIWlucHV0RWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIChpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkKLSAgICAgICAgICAgICYmIGlu
cHV0RWxlbWVudC0+aW5wdXRUeXBlKCkgIT0gSFRNTElucHV0RWxlbWVudDo6UEFTU1dPUkQKLSAg
ICAgICAgICAgICYmIGlucHV0RWxlbWVudC0+YXV0b0NvbXBsZXRlKCkpOworICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkgJiYgIWlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCkgJiYgaW5wdXRFbGVtZW50LT5hdXRvQ29tcGxldGUoKTsKIH0KIAogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0RWRpdGluZ0JlaGF2aW9yKFFXZWJQYWdlKiBwYWdlLCBjb25z
dCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNjc2MzEpCisrKyBX
ZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEw
LTA5LTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIEhUTUxJbnB1dEVs
ZW1lbnQ6OmlucHV0VHlwZSBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkwMworCisgICAgICAgICogV2Vi
RnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlKTog
VXNlIGlzUGFzc3dvcmRGaWVsZC4KKyAgICAgICAgKFdlYkZyYW1lOjplbGVtZW50SXNQYXNzd29y
ZCk6IFVzZSBpc1Bhc3N3b3JkRmllbGQuCisKIDIwMTAtMDktMTQgIEFkYSBDaGFuICA8YWRhY2hh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KSW5kZXg6IFdl
YktpdC93aW4vV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCShyZXZpc2lvbiA2NzQ3NCkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTc0LDcgKzExNzQsNyBAQCBIUkVTVUxUIFdlYkZyYW1lOjplbGVtZW50RG9l
c0F1dG9Db21wbGV0CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCiAgICAgICAgICpyZXN1bHQgPSBm
YWxzZTsKICAgICBlbHNlCi0gICAgICAgICpyZXN1bHQgPSBpbnB1dEVsZW1lbnQtPmlzVGV4dEZp
ZWxkKCkgJiYgaW5wdXRFbGVtZW50LT5pbnB1dFR5cGUoKSAhPSBIVE1MSW5wdXRFbGVtZW50OjpQ
QVNTV09SRCAmJiBpbnB1dEVsZW1lbnQtPmF1dG9Db21wbGV0ZSgpOworICAgICAgICAqcmVzdWx0
ID0gaW5wdXRFbGVtZW50LT5pc1RleHRGaWVsZCgpICYmICFpbnB1dEVsZW1lbnQtPmlzUGFzc3dv
cmRGaWVsZCgpICYmIGlucHV0RWxlbWVudC0+YXV0b0NvbXBsZXRlKCk7CiAKICAgICByZXR1cm4g
U19PSzsKIH0KQEAgLTEzNzksOSArMTM3OSw4IEBAIEhSRVNVTFQgV2ViRnJhbWU6OmNvbnRyb2xz
SW5Gb3JtKElET01FbGUKIAogSFJFU1VMVCBXZWJGcmFtZTo6ZWxlbWVudElzUGFzc3dvcmQoSURP
TUVsZW1lbnQgKmVsZW1lbnQsIGJvb2wgKnJlc3VsdCkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50
ICppbnB1dEVsZW1lbnQgPSBpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudChlbGVtZW50KTsKLSAg
ICAqcmVzdWx0ID0gaW5wdXRFbGVtZW50ICE9IDAKLSAgICAgICAgJiYgaW5wdXRFbGVtZW50LT5p
bnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpQQVNTV09SRDsKKyAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudChlbGVtZW50
KTsKKyAgICAqcmVzdWx0ID0gaW5wdXRFbGVtZW50ICYmIGlucHV0RWxlbWVudC0+aXNQYXNzd29y
ZEZpZWxkKCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAK
</data>
<flag name="review"
          id="57224"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>