<?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>35260</bug_id>
          
          <creation_ts>2010-02-22 13:43:45 -0800</creation_ts>
          <short_desc>Eliminate __apple_runtime_object</short_desc>
          <delta_ts>2010-02-23 11:04:51 -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>Plug-ins</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192598</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 13:43:45 -0800</bug_when>
    <thetext>This is a fake property for getting a RuntimeObjectImp wrapper for a plug-in element in some sort of pseudo-virtual call dispatch. There is no need for such a complicated trick, as far as I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192605</commentid>
    <comment_count>1</comment_count>
      <attachid>49240</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 13:58:22 -0800</bug_when>
    <thetext>Created attachment 49240
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192619</commentid>
    <comment_count>2</comment_count>
      <attachid>49240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-22 14:11:53 -0800</bug_when>
    <thetext>Comment on attachment 49240
proposed patch

&gt; +namespace JSC {
&gt; +namespace Bindings {
&gt; +class Instance;
&gt; +}
&gt; +}

That indentation is probably &quot;right&quot;, but it looks so wrong!

&gt; +            HTMLElement* el = static_cast&lt;JSHTMLElement*&gt;(object)-&gt;impl();

How about using the entire word &quot;element&quot; here instead of &quot;el&quot;?

&gt; +    Instance* instance = 0;

&gt; -    RefPtr&lt;Instance&gt; instance = imp-&gt;getInternalInstance();

Any danger in the lifetime of instance here?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192632</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 14:24:17 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/55104&gt;.

&gt; How about using the entire word &quot;element&quot; here instead of &quot;el&quot;?

Ok.

&gt; Any danger in the lifetime of instance here?

I was sure there isn&apos;t, but while writing the answer, I became unsure. Let me just revert this part...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192633</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 14:26:45 -0800</bug_when>
    <thetext>Changed back to RefPtr in r55105. A plain pointer may or may not be OK, but that&apos;s not what I&apos;m fixing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192675</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 15:44:18 -0800</bug_when>
    <thetext>The chromium is all geborked!  Strange that http://build.webkit.org/console seems to incriminate this change, but that the EWS bots didn&apos;t.


/Users/cltbld/Desktop/BuildSlaveData/WebKit-BuildSlave/chromium-mac-release/build/WebCore/WebCore.gyp/../bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:77: error: no â€˜v8::Handle&lt;v8::Value&gt; WebCore::V8HTMLAppletElement::namedPropertyGetter(v8::Local&lt;v8::String&gt;, const v8::AccessorInfo&amp;)â€™ member function declared in class â€˜WebCore::V8HTMLAppletElementâ€™</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192678</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-22 15:51:54 -0800</bug_when>
    <thetext>We relied on HasOverridingNameGetter as hint for custom getters here. Removing it made things go kablooey.

I think we&apos;ll need to special-case this in code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192686</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-22 16:21:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; We relied on HasOverridingNameGetter as hint for custom getters here. Removing
&gt; it made things go kablooey.
&gt; 
&gt; I think we&apos;ll need to special-case this in code generator.

Chromium build fix was http://trac.webkit.org/changeset/55111, looks like we&apos;re ok now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192718</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 17:17:11 -0800</bug_when>
    <thetext>I think that the right fix would be to remove namedPropertyGetter instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192726</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-22 17:43:28 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think that the right fix would be to remove namedPropertyGetter instead.

That would remove ability to query underlying NP object by named properties. Do we want that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192740</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-22 18:42:42 -0800</bug_when>
    <thetext>In JSC, this named getter was only used for getting a &quot;RuntimeObject&quot; corresponding to the plugin (applet/embed/object) element via an __apple_runtime_object property. A RuntimeObject is a JavaScript object that wraps e.g. an NPObject or an Objective C object that are used to communicate with plug-ins.

JS code from web sites was never supposed to access the __apple_runtime_object property, and as far as I can tell, it never did. This was purely a (super confusing) internal hack.

It it somehow different for v8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192982</commentid>
    <comment_count>11</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-23 09:26:39 -0800</bug_when>
    <thetext> In JSC you have getOwnPropertySlotDelegate, which can be used to both intercept named property lookup (like in HTMLApplet|Object|EmbedElement) or other things like security checks in History. In V8, there&apos;s a distinct API to hook up named property getters and a distinct API for security checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193009</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-02-23 10:24:44 -0800</bug_when>
    <thetext>Why are the V8 bindings different here? It should try and conform to WebKit&apos;s JS engine&apos;s conventions if it wishes to be in the WebKit tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193021</commentid>
    <comment_count>13</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-23 11:04:51 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Why are the V8 bindings different here? It should try and conform to WebKit&apos;s
&gt; JS engine&apos;s conventions if it wishes to be in the WebKit tree.

Try we must, and try we do. Some concepts translate easily from JSC to V8 API, some don&apos;t.

We don&apos;t want to see breakages like this, either. Hence the major refactoring of the bindings we&apos;ve been doing in the last 3 months.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49240</attachid>
            <date>2010-02-22 13:58:22 -0800</date>
            <delta_ts>2010-02-22 14:11:53 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>NukeAppleInternalObject.txt</filename>
            <type>text/plain</type>
            <size>12937</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTEwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTAtMDItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MjYwCisKKyAgICAgICAg
Tm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHksIHNvIG5vIHRlc3RzLgorCisgICAgICAgICogV2Vi
Q29yZS5iYXNlLmV4cDogRG9uJ3QgZXhwb3J0IEluc3RhbmNlOjpuZXdSdW50aW1lT2JqZWN0LCBX
ZWJLaXQgZG9lc24ndCBuZWVkIGl0LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQXBw
bGV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRW1iZWRF
bGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVt
ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuaWRsOgorICAgICAgICBUaGVzZSBvYmplY3RzIG5vIGxvbmdlciBuZWVkIG92
ZXJyaWRpbmcgbmFtZSBnZXR0ZXJzLCBhcyB0aGV5IG5vIGxvbmdlciBpbnRlcmNlcHQgdGhlCisg
ICAgICAgIF9fYXBwbGVfcnVudGltZV9vYmplY3QgcHJvcGVydHkuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGx1Z2luSW5zdGFuY2UpOiBUaGlzIGlzIG5vIGxvbmdlciBzdGF0aWMuIEl0IHdhcyB1c2VkIGZv
ciBjYWxsUGx1Z2luKCkgaW4KKyAgICAgICAgdGhpcyBmaWxlLCBhbmQgbm93IGl0J3MgYWxzbyB1
c2VkIGVsc2V3aGVyZSB3aGVuIGNhbGxpbmcgcGx1Zy1pbiBtZXRob2RzLgorICAgICAgICAoV2Vi
Q29yZTo6cnVudGltZU9iamVjdEdldHRlcik6IFJlbW92ZWQuIFRoaXMgZnVuY3Rpb24gd2FzIG9u
bHkgdXNlZCBieSB0aGUgaW50ZXJjZXB0aW5nCisgICAgICAgIG5hbWUgZ2V0dGVycy4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oOiBFeHBvcnQgcGx1
Z2luSW5zdGFuY2UoKS4KKworICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0
Lm1tOgorICAgICAgICAoK1tXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1ZVRvT2JqY1ZhbHVl
Om9yaWdpblJvb3RPYmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpjYWxsUnVudGltZU1ldGhvZCk6CisgICAgICAg
IFRha2UgcGx1Zy1pbiBlbGVtZW50J3MgaW5zdGFuY2UgZGlyZWN0bHksIHdpdGhvdXQgcmVseWlu
ZyBvbiBmYWtlIGF0dHJpYnV0ZSBsb29rdXAuCisgICAgICAgIE9uZSBjaGFuZ2UgcmVzdWx0aW5n
IGZyb20gdGhpcyBpcyB0aGF0IFJ1bnRpbWVPYmplY3RJbXAgbWF5IG5vdCBiZSBjcmVhdGVkIGlu
IHNvbWUgY2FzZXMgLQorICAgICAgICB0aGlzIGNvZGUgb25seSBuZWVkcyBhbiBpbnN0YW5jZSwg
YnV0IHRoZSBvbGQgY29kZSBoYWQgdG8gcGFzcyB0aGUgaW5zdGFuY2Ugd3JhcHBlZCBpbnRvCisg
ICAgICAgIFJ1bnRpbWVPYmplY3RJbXAuCisKIDIwMTAtMDItMjIgIEpvaG4gU3VsbGl2YW4gIDxz
dWxsaXZhbkBhcHBsZS5jb20+CiAgICAgICAgIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0
Y2hlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDU1MDg3KQorKysgV2ViQ29yZS9XZWJDb3Jl
LmJhc2UuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDYgQEAgX19aNGNvcmVQMTlE
T01Eb2N1bWVudEZyYWdtZW50CiBfX1o0Y29yZVAyMkRPTUNTU1N0eWxlRGVjbGFyYXRpb24KIF9f
WjRjb3JlUDdET01Ob2RlCiBfX1o0Y29yZVA4RE9NUmFuZ2UKLV9fWk4zSlNDOEJpbmRpbmdzOElu
c3RhbmNlMTZuZXdSdW50aW1lT2JqZWN0RVBOU185RXhlY1N0YXRlRQogX19aTjdXZWJDb3JlMTBN
b3VzZUV2ZW50QzFFUktOU18xMkF0b21pY1N0cmluZ0ViYk4zV1RGMTBQYXNzUmVmUHRySU5TXzlE
T01XaW5kb3dFRUVpaWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xp
cGJvYXJkRUVFYgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MTdzZXRTY3JvbGxiYXJNb2Rlc0VO
U18xM1Njcm9sbGJhck1vZGVFUzFfCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhh
dmVTY3JvbGxiYXJzRWIKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxl
bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxB
cHBsZXRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gNTUwODcpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MywxNCArNTMsNCBAQCBDYWxsVHlwZSBKU0hUTUxBcHBsZXRFbGVtZW50OjpnZXRDYWxsRGF0CiAg
ICAgcmV0dXJuIHJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YShpbXBsKCksIGNhbGxEYXRhKTsKIH0K
IAotYm9vbCBKU0hUTUxBcHBsZXRFbGVtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRl
KiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17
Ci0gICAgcmV0dXJuIHByb3BlcnR5TmFtZSA9PSAiX19hcHBsZV9ydW50aW1lX29iamVjdCI7Ci19
Ci0KLUpTVmFsdWUgSlNIVE1MQXBwbGV0RWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBz
bG90KQotewotICAgIHJldHVybiBydW50aW1lT2JqZWN0R2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDU1
MDg3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MywxNCArNTMsNCBAQCBDYWxsVHlwZSBKU0hUTUxFbWJlZEVs
ZW1lbnQ6OmdldENhbGxEYXRhCiAgICAgcmV0dXJuIHJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YShp
bXBsKCksIGNhbGxEYXRhKTsKIH0KIAotYm9vbCBKU0hUTUxFbWJlZEVsZW1lbnQ6OmNhbkdldEl0
ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MRW1iZWRFbGVtZW50KiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBwcm9wZXJ0eU5hbWUgPT0gIl9fYXBwbGVf
cnVudGltZV9vYmplY3QiOwotfQotCi1KU1ZhbHVlIEpTSFRNTEVtYmVkRWxlbWVudDo6bmFtZUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29u
c3QgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBydW50aW1lT2JqZWN0R2V0dGVy
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3Vz
dG9tLmNwcAkocmV2aXNpb24gNTUwODcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9i
amVjdEVsZW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MywxNCArNTMsNCBAQCBD
YWxsVHlwZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0CiAgICAgcmV0dXJuIHJ1bnRp
bWVPYmplY3RHZXRDYWxsRGF0YShpbXBsKCksIGNhbGxEYXRhKTsKIH0KIAotYm9vbCBKU0hUTUxP
YmplY3RFbGVtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgSFRNTE9iamVjdEVs
ZW1lbnQqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIHBy
b3BlcnR5TmFtZSA9PSAiX19hcHBsZV9ydW50aW1lX29iamVjdCI7Ci19Ci0KLUpTVmFsdWUgSlNI
VE1MT2JqZWN0RWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJl
dHVybiBydW50aW1lT2JqZWN0R2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDU1MDg3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw3ICszNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8vIFJ1bnRp
bWUgb2JqZWN0IHN1cHBvcnQgY29kZSBmb3IgSlNIVE1MQXBwbGV0RWxlbWVudCwgSlNIVE1MRW1i
ZWRFbGVtZW50IGFuZCBKU0hUTUxPYmplY3RFbGVtZW50LgogCi1zdGF0aWMgSW5zdGFuY2UqIHBs
dWdpbkluc3RhbmNlKE5vZGUqIG5vZGUpCitJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoTm9kZSog
bm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTcsMTQgKzU3
LDYgQEAgc3RhdGljIFJ1bnRpbWVPYmplY3RJbXAqIGdldFJ1bnRpbWVPYmplYwogICAgIHJldHVy
biBpbnN0YW5jZS0+Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIH0KIAotSlNWYWx1ZSBydW50
aW1lT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqID0gc3Rh
dGljX2Nhc3Q8SlNIVE1MRWxlbWVudCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwotICAg
IEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0aGlzT2Jq
LT5pbXBsKCkpOwotICAgIFJ1bnRpbWVPYmplY3RJbXAqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50
aW1lT2JqZWN0KGV4ZWMsIGVsZW1lbnQpOwotICAgIHJldHVybiBydW50aW1lT2JqZWN0ID8gcnVu
dGltZU9iamVjdCA6IGpzVW5kZWZpbmVkKCk7Ci19Ci0KIEpTVmFsdWUgcnVudGltZU9iamVjdFBy
b3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNIVE1MRWxlbWVudCogdGhp
c09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5j
dGlvbnMuaAkocmV2aXNpb24gNTUwODcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiwxMiBAQAogCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKK25hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIEJp
bmRpbmdzIHsKK2NsYXNzIEluc3RhbmNlOworfQorfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBIVE1MRWxlbWVudDsKQEAgLTI5LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIE5vZGU7CiAKICAgICAvLyBSdW50aW1lIG9iamVjdCBzdXBwb3J0IGNv
ZGUgZm9yIEpTSFRNTEFwcGxldEVsZW1lbnQsIEpTSFRNTEVtYmVkRWxlbWVudCBhbmQgSlNIVE1M
T2JqZWN0RWxlbWVudC4KKyAgICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogcGx1Z2luSW5zdGFu
Y2UoTm9kZSopOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJ1bnRpbWVPYmplY3RHZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBjb25zdCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIEpTQzo6SlNWYWx1ZSBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBjb25zdCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jiwg
SlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJiwgSlNIVE1MRWxlbWVudCopOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCShyZXZpc2lvbiA1NTA4NykKKysrIFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDggQEAKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJKU0RPTVdpbmRvdy5oIgog
I2ltcG9ydCAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbXBvcnQgIkpTSFRNTEVsZW1lbnQuaCIK
KyNpbXBvcnQgIkpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIgogI2ltcG9ydCAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbXBvcnQgIlN0cmluZ1NvdXJjZVByb3ZpZGVyLmgiCiAjaW1wb3J0ICJXZWJD
b3JlT2JqQ0V4dHJhcy5oIgpAQCAtNTA4LDE4ICs1MTAsMTcgQEAgc3RhdGljIHZvaWQgZ2V0TGlz
dEZyb21OU0FycmF5KEV4ZWNTdGF0ZQogewogICAgIGlmICh2YWx1ZS5pc09iamVjdCgpKSB7CiAg
ICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAg
ICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgICAgIAotICAg
ICAgICBpZiAob2JqZWN0LT5jbGFzc0luZm8oKSAhPSAmUnVudGltZU9iamVjdEltcDo6c19pbmZv
KSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHJ1bnRpbWVPYmplY3QgPSBvYmplY3QtPmdldChleGVj
LCBJZGVudGlmaWVyKGV4ZWMsICJfX2FwcGxlX3J1bnRpbWVfb2JqZWN0IikpOwotICAgICAgICAg
ICAgaWYgKHJ1bnRpbWVPYmplY3QgJiYgcnVudGltZU9iamVjdC5pc09iamVjdCgpKQotICAgICAg
ICAgICAgICAgIG9iamVjdCA9IGFzT2JqZWN0KHJ1bnRpbWVPYmplY3QpOwotICAgICAgICB9CiAK
LSAgICAgICAgaWYgKG9iamVjdC0+Y2xhc3NJbmZvKCkgPT0gJlJ1bnRpbWVPYmplY3RJbXA6OnNf
aW5mbykgeworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0cygmSlNIVE1MRWxlbWVudDo6c19p
bmZvKSkgeworICAgICAgICAgICAgLy8gUGx1Z2luIGVsZW1lbnRzIGNhY2hlIHRoZSBpbnN0YW5j
ZSBpbnRlcm5hbGx5LgorICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGVsID0gc3RhdGljX2Nhc3Q8
SlNIVE1MRWxlbWVudCo+KG9iamVjdCktPmltcGwoKTsKKyAgICAgICAgICAgIE9iamNJbnN0YW5j
ZSogaW5zdGFuY2UgPSBzdGF0aWNfY2FzdDxPYmpjSW5zdGFuY2UqPihwbHVnaW5JbnN0YW5jZShl
bCkpOworICAgICAgICAgICAgaWYgKGluc3RhbmNlKQorICAgICAgICAgICAgICAgIHJldHVybiBp
bnN0YW5jZS0+Z2V0T2JqZWN0KCk7CisgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0
cygmUnVudGltZU9iamVjdEltcDo6c19pbmZvKSkgewogICAgICAgICAgICAgUnVudGltZU9iamVj
dEltcCogaW1wID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdEltcCo+KG9iamVjdCk7Ci0gICAg
ICAgICAgICBPYmpjSW5zdGFuY2UgKmluc3RhbmNlID0gc3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNl
Kj4oaW1wLT5nZXRJbnRlcm5hbEluc3RhbmNlKCkpOworICAgICAgICAgICAgT2JqY0luc3RhbmNl
KiBpbnN0YW5jZSA9IHN0YXRpY19jYXN0PE9iamNJbnN0YW5jZSo+KGltcC0+Z2V0SW50ZXJuYWxJ
bnN0YW5jZSgpKTsKICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaW5zdGFuY2UtPmdldE9iamVjdCgpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKSW5k
ZXg6IFdlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAJKHJldmlzaW9uIDU1MDg3KQorKysgV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4
IEBACiAjaW5jbHVkZSAicnVudGltZV9tZXRob2QuaCIKIAogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgorI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJydW50aW1lX29iamVjdC5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CkBA
IC05MSwyNSArOTMsMjUgQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGlt
ZQogCiAgICAgaWYgKG1ldGhvZC0+bWV0aG9kcygpLT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIAotICAgIFJ1bnRpbWVPYmplY3RJbXAqIGltcDsKKworICAg
IEluc3RhbmNlKiBpbnN0YW5jZSA9IDA7CiAKICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKCZS
dW50aW1lT2JqZWN0SW1wOjpzX2luZm8pKSB7Ci0gICAgICAgIGltcCA9IHN0YXRpY19jYXN0PFJ1
bnRpbWVPYmplY3RJbXAqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICAgICAgUnVudGltZU9i
amVjdEltcCogaW1wID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdEltcCo+KGFzT2JqZWN0KHRo
aXNWYWx1ZSkpOworICAgICAgICBpbnN0YW5jZSA9IGltcC0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgp
OworICAgICAgICBpZiAoIWluc3RhbmNlKSAKKyAgICAgICAgICAgIHJldHVybiBSdW50aW1lT2Jq
ZWN0SW1wOjp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKICAgICB9IGVsc2UgewotICAg
ICAgICAvLyBJZiB0aGlzT2JqIGlzIHRoZSBET00gb2JqZWN0IGZvciBhIHBsdWdpbiwgZ2V0IHRo
ZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHJ1bnRpbWUgb2JqZWN0IGZyb20gdGhlIERPTSBv
YmplY3QuCi0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSB0aGlzVmFsdWUuZ2V0KGV4ZWMsIElkZW50
aWZpZXIoZXhlYywgIl9fYXBwbGVfcnVudGltZV9vYmplY3QiKSk7Ci0gICAgICAgIGlmICh2YWx1
ZS5pbmhlcml0cygmUnVudGltZU9iamVjdEltcDo6c19pbmZvKSkgICAgCi0gICAgICAgICAgICBp
bXAgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0SW1wKj4oYXNPYmplY3QodmFsdWUpKTsKLSAg
ICAgICAgZWxzZQorICAgICAgICAvLyBDYWxsaW5nIGEgcnVudGltZSBvYmplY3Qgb2YgYSBwbHVn
aW4gZWxlbWVudD8KKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cygmSlNIVE1MRWxlbWVu
dDo6c19pbmZvKSkgeworICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGVsID0gc3RhdGljX2Nhc3Q8
SlNIVE1MRWxlbWVudCo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpLT5pbXBsKCk7CisgICAgICAgICAg
ICBpbnN0YW5jZSA9IHBsdWdpbkluc3RhbmNlKGVsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
IWluc3RhbmNlKQogICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9y
KTsKICAgICB9CisgICAgQVNTRVJUKGluc3RhbmNlKTsKIAotICAgIFJlZlB0cjxJbnN0YW5jZT4g
aW5zdGFuY2UgPSBpbXAtPmdldEludGVybmFsSW5zdGFuY2UoKTsKLSAgICBpZiAoIWluc3RhbmNl
KSAKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWVPYmplY3RJbXA6OnRocm93SW52YWxpZEFjY2Vzc0Vy
cm9yKGV4ZWMpOwotICAgICAgICAKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGluc3RhbmNlLT5pbnZva2VNZXRob2QoZXhlYywgKm1ldGhvZC0+bWV0aG9kcygp
LCBhcmdzKTsKICAgICBpbnN0YW5jZS0+ZW5kKCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFw
cGxldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5pZGwJKHJldmlzaW9uIDU1MDg3KQorKysgV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgaW50ZXJmYWNlIFsKICAgICAgICAgRGVsZWdhdGluZ1B1dEZ1bmN0aW9uLAogICAgICAgICBE
ZWxlZ2F0aW5nR2V0T3duUHJvcGVydHlTbG90LAotICAgICAgICBDdXN0b21DYWxsLAotICAgICAg
ICBIYXNPdmVycmlkaW5nTmFtZUdldHRlcgorICAgICAgICBDdXN0b21DYWxsCiAgICAgXSBIVE1M
QXBwbGV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgYWx0OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNp
b24gNTUwODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDggKzIzLDcgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAg
ICAgICAgIERlbGVnYXRpbmdQdXRGdW5jdGlvbiwKICAgICAgICAgRGVsZWdhdGluZ0dldE93blBy
b3BlcnR5U2xvdCwKLSAgICAgICAgQ3VzdG9tQ2FsbCwKLSAgICAgICAgSGFzT3ZlcnJpZGluZ05h
bWVHZXR0ZXIKKyAgICAgICAgQ3VzdG9tQ2FsbAogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVApJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaWRsCShyZXZpc2lvbiA1NTA4NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIERlbGVnYXRpbmdQdXRGdW5jdGlvbiwKICAgICAg
ICAgRGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCwKLSAgICAgICAgQ3VzdG9tQ2FsbCwKLSAg
ICAgICAgSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIKKyAgICAgICAgQ3VzdG9tQ2FsbAogICAgIF0g
SFRNTE9iamVjdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGNvZGU7Cg==
</data>
<flag name="review"
          id="32046"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>